Collision detection management in Libgdx
Nachdem Sie dies gelesen haben:
Die Verwaltung Kollisionserkennung
Dachte ich darüber nach, wie Sie es schaffen in libgdx, wie es die anderen Kollisionserkennung (mit Intersector) und andere Klassen, die Sie verwenden können, in Spiel.
Ich habe die Logik meiner Objekte mit Ihren Eigenschaften (Zombie beispielsweise mit Geschwindigkeit und Gesundheit) und die Optik mit den Texturen, Position auf dem Bildschirm, etc.( Zombie2d zum Beispiel die Actor). Die Zombie2d hat auch einen Bezug zu Zombie, um alle Attribute von einem Zombie. Die Frage: Sollte jeder Schauspieler ein Verweis auf die Ebene, wo alle anderen Objekte gespeichert sind und erkennt die Kollision auf seine eigenen oder sollte ich mir noch einen Manager mit der Ebene als Referenz?
Sollte ich die Kollisionserkennung innerhalb der Schauspieler.act(delta) - Methode oder zwischen Schauspieler.act() und Schauspieler.draw()?
InformationsquelleAutor Springrbua | 2014-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt von Ihrem Spiel, zum Beispiel, Spiele wie diese: SuperJumper.
Sehr einfache Kollisionen (Plattformen/Eichhörnchen/Münzen/etc. nur kollidieren mit Bob, aber Sie nicht miteinander kollidieren) sind leicht zu handhaben, innerhalb der Welt Klasse. Wie diese:
Aber ein komplexeres Spiel hatte Gegner/Geschosse/etc, die da aufeinander prallen/Wände/Spieler/etc finden würde, ein sauberer code, wenn jeder behandelt seine eigenen Kollisionen.
Gut, wie die Kollisionen nehmen eine wichtige Rolle in der Entität Verhalten (z.B. Prellen, stoppen, Bewegung, etc). Es wäre besser, es in der
Actor.act(delta)
Methode.Sie nennen die Reaktion der anderen auch, weil durch die Zeit, die die anderen überprüfen Ihre Kollisionen,die ersten wahrscheinlich schon verschoben (Prellen zum Beispiel).
+1 für deine Antwort. Bis jetzt hatte ich CollisionManager, dem es gelang, die Kollisionsabfrage aber ich denke, das ist eine bessere Lösung
InformationsquelleAutor Lestat