Wie können Physikspiele von oben in Box2D ausgeführt werden? Eine Idee, die ich habe, ist, die Lineargeschwindigkeit eines Objekts manuell einzustellen oder die Linear- und Winkeldämpfung zu ändern, wenn sich mein Objekt über verschiedene Oberflächen bewegt. Befindet sich mein Objekt beispielsweise über einer nassen Oberfläche, wird es weniger linear gedämpft, und wenn es sich über einer rauen Oberfläche befindet, wird es stärker gedämpft. Und um zu sehen, ob mein Objekt über eine Kante gefallen ist, werde ich versuchen, ein zu verwenden AABB
und zu überprüfen, ob es noch im Inneren ist, oder manuell zu prüfen, ob object.x > boundary.x
usw. Gibt es einen besseren Weg?
7
Box2D wurde entwickelt, um mit zweidimensionalem Raum zu arbeiten. In einem 2D-Plattformspiel konnten wir unsere Objekte anhand der Basis XY beschreiben:
In diesem Spiel gibt es keine Tiefe, ok? Wenn wir dasselbe Spiel mit einer Draufsicht sehen wollen, braucht unser Raum eine dritte neue Dimension Z, um die Tiefe zu beschreiben. Was geschieht? Jetzt haben wir drei Dimensionen, aber Box2D ist in zwei Dimensionen ausgelegt.
Das Spiel kann visuell zweidimensional sein, aber die Logik ist in diesem Fall dreidimensional. (Draufsicht).
Ich denke, das ist besser, wenn Sie eine andere 3D-Physikbibliothek verwenden oder selbst implementieren.
Ich habe noch nie ein Top-View-Spiel mit Box2D gesehen und wäre sehr dankbar, wenn jemand eines kennt.
quelle
Wie jhocking sagte, ist es dasselbe mit Box2D für eine Seiten- oder Draufsicht.
Deaktivieren Sie einfach die Schwerkraft und spielen Sie mit den Tiefen mithilfe der Kolisionsfilterung im box2D-Handbuch.
Da es keine Schwerkraft gibt, sind die Objekte beim Schieben "leichter" als normal. Spielen Sie mit den Massen und den Kräften, um gleichwertige Ergebnisse zu erzielen.
Was Sie als Dämpfung bezeichnet haben, sollte die übliche Reibung in Box2D sein, denke ich. und zur Überprüfung der Grenzwerte Ihrer Füllstände gibt es Sensoren. Formen, die dir sagen, wann etwas übergeht :)
quelle