welche art der kollisionserkennung ?
-
morgen,
hab ein problem, welches sich eigentlich total billig anhört, aber egal.
ich progge gerade nebenbei an einem Ballerburgklon (hoffe ist bekannt, wenn nicht: [url] http://dus.softgames.de/bdt.php?bdt_id=340 [/url] ) <-- meins wird sicherlich nicht so gut aussehen,aber egal
Ich weiss jetzt nicht wie ich überprüfen soll ob die Kugel auf dem boden angekommen ist.
zur Erklärung, ich benutze kein Direct3D oder OpenGl. sondern nur die WinAPI (hoffe das ist richtig).
also wenn meine Kugel fliegt und nicht die Burg des anderen trifft, dann soll ein Einschlagloch entstehen. Die Frage ist jetzt, welche methode sollte ich nehmen?
ich kann die Grenzlinie (also die Oberkante) des Bodens speichern, muss diese aber nach jedem Einschlag neuspeichern. Oder ich kann die Farbe (Bsp. Boden ist grün) überprüfen und dadurch das ein Einschlagloch (sprich: die Farbe ändert sich) entsteht, bräuchte ich nichts extra speichert, oder aktualisieren.
Hinweis: Die Burg des anderen wird nicht zerstückelt, und die Kollisionserkennung habe ich schon. (Kugel(Rect) trifft Burg(Rect),Burg verliert punkte aber bleibt stehen)
hoffe es ist ein bisschen verständlich geworden.
THX Lupo
P.S. bitte nicht auf die Faq (im allgemein) hinweisen, denn da hab ich schon gesucht.
-
ich benutze kein Direct3D oder OpenGl. sondern nur die WinAPI (hoffe das ist richtig)
lol *naja egal*
So ganz schlau werd ich aus deiner Aussage nicht.
Wenn du nur wissen willst wie die Kollisionsabfrage der Kugel mit dem Boden ausschaut, ist das relativ einfach. Solange der Abstand auf der Y (Höhen)-Achse des Mittelpunktes der Kugel grösser oder gleich dem Radius der Kugel ist, liegt keine Kollision vor.
Wenn du wissen willst wie bereits erfolte Kollision beim Neuzeichnen wieder ins Bild eingefügt werden, würde ich das so machen. Du erstellst eine Liste wo alle bereits erfolgten Einschläge *dokumentiert* werden. Dafür brauchst du eine Struktur wo alle notwendigen Daten für die Rekonstruktion eines Einschlages bereitgestellt werden (Koordinaten, Farbe, Tiefe, etc.pp). Beim Neuzeichnen gehst du dann einfach alle Elemente der Liste durch und zeichnest sie. Als Erweiterung würde ich noch eine Toleranzabfrage einbauen, sh wenn ein Einschlag einem bereits vorhandenen sehr nahe kommt, wird dieser einfach verworfen. Das spart Speicher, ist allerdings auch etwas performancehungriger. Muss man dann halt ausprobieren was besser klappt.