Différence entre la physique d'Arcade, P2 et Ninja dans Phaser


33

Je suis un débutant et j'essaie d'apprendre le développement de jeux en utilisant Phaser . Actuellement, Phaser fournit trois systèmes de physique, à savoir Arcade, P2 et Ninja. Mais je ne connais pas leurs différences et j'aimerais aussi savoir dans quel scénario utiliser un système de physique particulier?

S'il vous plaît donnez-moi un aperçu de ces systèmes de physique.


1
Phaser est livré avec notre système Arcade Physics, Ninja Physics et P2.JS, un système de physique complet. Arcade Physics concerne uniquement les collisions AABB à grande vitesse. Ninja Physics permet de créer des tuiles et des pentes complexes, parfaits pour les scènes de niveau, et P2.JS est un système de physique complet, avec contraintes, ressorts, support de polygones, etc.
congusbongus

Et maintenant, il y a aussi le backend payant Box2D, qui devrait être similaire à P2.JS mais meilleur.
Ciro Santilli a annoncé le

Réponses:


39

Comme mentionné dans les commentaires, leur site explique déjà quels sont les trois systèmes et à quoi ils peuvent servir.

Arcade Physics concerne uniquement les collisions AABB à grande vitesse.

AABB signifie rectangles bornés alignés sur l'axe; cela signifie que vous avez des objets sans rotation et que vous ne faites que vérifier si l'image (qui est un rectangle) chevauche une autre image (il y a donc risque de collision). C'est peu coûteux à calculer et rapide, c'est probablement pourquoi ils le recommandent pour les collisions à grande vitesse.

Un problème avec AABB est qu'il ne garantit pas qu'il y a vraiment une collision; vous pouvez avoir une zone complètement transparente qui se chevauchent.

Ninja Physics permet de créer des tuiles et des pentes complexes, idéales pour les [...]

Rappelez-vous comment AABB ne tourne pas? Ninja Physics se chargera des rotations (pour pouvoir faire des pentes et des tuiles complexes). Il s’agit d’un modèle de physique plus souple (et probablement plus précis); c'est probablement plus lent.

[...] P2.JS est un système de physique complet, avec contraintes, ressorts, support de polygones, etc.

Si vous devez modéliser des ressorts (par exemple, un pendule), des contraintes sur des forces et des formes de polygones arbitraires (par exemple, un tétraèdre), vous obtenez ce que vous souhaitez. Si vous voulez un cadre de référence, pensez à quelque chose comme Angry Birds.

En fonction de votre jeu, vous pouvez choisir celui qui correspond le mieux à vos besoins. Cela ressemble à un spectre de vitesse par rapport à précision / complexité (la physique d'arcade étant la plus rapide mais la plus simple).


une incidence du modèle plus précis diminue-t-elle les performances?
expiredninja

@expiredninja oui, bien sûr. AABB est rapide et bon marché; les deux autres sont plus complexes et riches en fonctionnalités (p. ex. pentes, rotations) et ont donc un coût en termes de performances.
ashes999

Je suppose que je me demandais quels sont les seuils en termes de nombre et / ou de complexité des objets.
Expiredninja

2
@expiredninja dépendra en grande partie de votre matériel et de votre logique de jeu. Je vous suggère d’ouvrir une autre question, ou mieux encore, essayez-les et voyez ce qui vous convient le mieux.
ashes999
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.