Ich arbeite im moment auch an einem 2D-Weltraumshooter ^^
Ich hab mir jetzt deine Collisionsberechnung nicht so genau angeschaut, denn ich hab das anders gemacht, so sieht der ablauf bei mir aus:
1. alle Objekte werden gegenseitig geprüft
2. in jedem Objekt ist definiert mit welchen Objekten es kollidieren darf
3. ein einfacher Vergleich ob sich zwei Objekte überschneiden (RectInRect)
4. Pixelcollision (nur schwarz/weiß)
Du kannst dir gerne meinen Code anschauen, hab das komplette Projekt angehangen.
Momentan hab ich folgende Sachen implementiert:
- DirectDraw (1024x768 in 16bit Fullscreen)
- alles komplett selbst geschrieben (
NonVCL,
OOP), hab auf jegliche komponenten/fremdcode verzichtet (ausnahme Directdraw.pas).
- eigenes Grafikformat für die animierten grafiken
- Timebased Movement
- Pixelcollision
- Alpha-Transparenz (8bit)
- Animationen
- die Grafiken wurden auch von jemanden extra für dieses Spiel gezeichnet
Spielen kann man allerdings noch nicht richtig, denn ich habe noch keine Levels gebaut, dh die gegner kommen bis jetzt nur zufällig. Man selbst kann auch nicht sterben ^^
mfg