Diferença entre Arcade, P2 e física Ninja em Phaser

33

Sou iniciante e estou tentando aprender o desenvolvimento de jogos usando a Phaser . Atualmente, a Phaser está fornecendo três sistemas de física, como Arcade, P2 e Ninja. Mas não sei as diferenças entre eles e também gostaria de saber em que cenário devemos usar um sistema de física específico.

Por favor, me dê algumas dicas para esses sistemas de física.

Vijay
fonte
1
A Phaser é fornecida com nosso sistema Arcade Physics, Ninja Physics e P2.JS - um sistema de física de corpo inteiro. Arcade Physics destina-se apenas a colisões AABB de alta velocidade. A Ninja Physics permite ladrilhos e declives complexos, perfeitos para cenários de nível, e o P2.JS é um sistema de física de corpo inteiro, com restrições, molas, suporte a polígonos e muito mais.
precisa saber é o seguinte
E agora também há o back-end Box2D pago, que deve ser semelhante ao P2.JS, mas melhor.
Ciro Santilli respondeu

Respostas:

39

Conforme mencionado nos comentários, o site já explica o que são os três sistemas e para que podem ser usados.

Arcade Physics destina-se apenas a colisões AABB de alta velocidade.

AABB significa retângulos delimitados por eixo; significa que você tem objetos sem rotação e só está verificando se a imagem (que é um retângulo) se sobrepõe a outra imagem (para que haja uma colisão em potencial). É barato calcular, e rápido, e é provavelmente por isso que o recomendam para colisões em alta velocidade.

Um problema com a AABB é que ele não garante que realmente haja uma colisão; você pode ter uma área completamente transparente sobreposta.

A Ninja Physics permite ladrilhos e encostas complexos, perfeitos para cenários de nível, [...]

Lembra como o AABB não é rotacionado? A Ninja Physics lida com rotações (para que ele possa fazer inclinações e ladrilhos complexos). Este é um modelo de física mais flexível (e provavelmente mais preciso); provavelmente é mais lento.

[...] O P2.JS é um sistema físico de corpo inteiro, com restrições, molas, suporte a polígonos e muito mais.

Se você precisar modelar molas (por exemplo, algo balançando como um pêndulo), restrições de forças e formas arbitrárias de polígonos (por exemplo, tetraedro), isso soa como o que você deseja. Se você quer um quadro de referência, pense em algo como Angry Birds.

Com base no seu jogo, você pode escolher qual é o mais adequado às suas necessidades. Parece um espectro de velocidade versus precisão / complexidade (a Arcade Physics é a mais rápida, porém mais simples).

ashes999
fonte
uma incidência do modelo mais preciso diminui o desempenho?
Expiredninja 18/05
@expiredninja sim, é claro. AABB é rápido e barato; os outros dois são mais complexos e ricos em recursos (por exemplo, inclinações, rotações), por isso têm um custo de desempenho.
Ashes999 18/05
Eu acho que estava pensando sobre o que os limites geralmente são em termos de número e / ou complexidade de objetos.
Expiredninja 21/05
2
@expiredninja que dependerá em grande parte do hardware e da lógica do jogo. Sugiro que você abra outra pergunta, ou melhor ainda, tente-as e veja o que funciona melhor para suas necessidades.
ashes999