Unterschied zwischen Arcade-, P2- und Ninja-Physik in Phaser

33

Ich bin ein Anfänger und versuche, die Spieleentwicklung mit Phaser zu lernen . Derzeit bietet Phaser drei physikalische Systeme an, nämlich Arcade, P2 und Ninja. Aber ich kenne die Unterschiede nicht und möchte auch wissen, in welchem ​​Szenario wir ein bestimmtes Physiksystem verwenden sollten?

Bitte geben Sie mir einen Einblick in diese physikalischen Systeme.

Vijay
quelle
1
Phaser wird mit unserem Arcade Physics-System, Ninja Physics und P2.JS - einem Ganzkörperphysik-System - ausgeliefert. Arcade Physics ist nur für Hochgeschwindigkeits-AABB-Kollisionen vorgesehen. Ninja Physics ermöglicht komplexe Kacheln und Gefälle, die sich perfekt für ebene Landschaften eignen. P2.JS ist ein Ganzkörper-Physiksystem mit Einschränkungen, Federn, Polygonunterstützung und vielem mehr.
Congusbongus
Und jetzt gibt es auch das kostenpflichtige Box2D-Backend, das P2.JS ähneln soll, aber besser ist.
Ciro Santilli am

Antworten:

39

Wie in den Kommentaren erwähnt, erklärt die Site bereits, was die drei Systeme sind und wofür sie verwendet werden können.

Arcade Physics ist nur für Hochgeschwindigkeits-AABB-Kollisionen vorgesehen.

AABB bedeutet achsenausgerichtete begrenzte Rechtecke. Dies bedeutet, dass Sie Objekte ohne Drehung haben und nur prüfen, ob sich das Bild (das ein Rechteck ist) mit einem anderen Bild überlappt (es besteht also die Möglichkeit einer Kollision). Dies ist billig zu berechnen und schnell, was wahrscheinlich der Grund ist, warum sie es für Hochgeschwindigkeitskollisionen empfehlen.

Ein Problem mit AABB ist, dass es nicht garantiert, dass es wirklich eine Kollision gibt. Möglicherweise haben Sie einen vollständig transparenten Bereich, der sich überlappt.

Die Ninja-Physik ermöglicht komplexe Kacheln und Gefälle, perfekt für ebene Landschaften, [...]

Erinnern Sie sich, wie AABB nicht gedreht wird? Ninja Physics kann mit Rotationen umgehen (so dass auch Neigungen und komplexe Kacheln möglich sind). Dies ist ein flexibleres (und wahrscheinlich genaueres) Physikmodell. es ist wahrscheinlich langsamer.

[...] P2.JS ist ein Ganzkörperphysiksystem mit Abhängigkeiten, Federn, Polygonunterstützung und vielem mehr.

Wenn Sie Federn (z. B. Pendelschwingungen), Zwangskräfte und beliebige Polygonformen (z. B. Tetraeder) modellieren müssen, klingt dies nach Ihren Wünschen. Wenn Sie einen Bezugsrahmen benötigen, denken Sie an etwas wie Angry Birds.

Abhängig von Ihrem Spiel können Sie auswählen, welches am besten zu Ihren Anforderungen passt. Es klingt wie ein Spektrum aus Geschwindigkeit und Genauigkeit / Komplexität (Arcade-Physik ist am schnellsten, aber am einfachsten).

ashes999
quelle
verringert eine Inzidenz des genaueren Modells die Leistung?
Expiredninja
@expiredninja ja natürlich. AABB ist schnell und günstig; Die anderen beiden sind komplexer und funktionsreicher (z. B. Neigungen, Rotationen), sodass sie mit Leistungskosten verbunden sind.
Asche999
Ich denke, ich habe mich gefragt, was die Schwellenwerte im Allgemeinen in Bezug auf die Anzahl und / oder Komplexität von Objekten sind.
abgelaufen
2
@expiredninja, das hauptsächlich von Ihrer Hardware und der Spielelogik abhängt. Ich schlage vor, Sie öffnen eine andere Frage, oder noch besser, probieren Sie sie aus und finden Sie heraus, was für Ihre Bedürfnisse am besten geeignet ist.
ashes999