PhaserのArcade、P2、Ninja物理の違い


33

私は初心者で、Phaserを使用してゲーム開発を学ぼうとしています。現在、Phaserは3つの物理システム、つまりArcade、P2、Ninjaを提供しています。しかし、それらの違いはわかりません。また、どのシナリオで特定の物理システムを使用すべきかを知りたいのですが。

これらの物理システムについての洞察をお願いします。


1
Phaserには、アーケード物理システムであるNinja PhysicsとP2.JS(フルボディ物理システム)が付属しています。Arcade Physicsは、高速AABB衝突専用です。Ninja Physicsは、複雑なタイルとスロープを可能にし、水平な風景に最適です。P2.JSは、制約、スプリング、ポリゴンサポートなどを備えたフルボディの物理システムです。
コンガスボン14

そして今、有料のBox2Dバックエンドもあります。これはP2.JSに似ていますが、より優れているはずです。
Ciro Santilli新疆改造中心法轮功六四事件

回答:


39

コメントで述べたように、彼らのサイトはすでに3つのシステムが何であり、何に使用できるかを説明しています。

Arcade Physicsは、高速AABB衝突専用です。

AABBは、軸に沿った境界のある長方形を意味します。つまり、回転のないオブジェクトがあり、画像(長方形)が別の画像と重複しているかどうかだけをチェックしています(したがって、衝突の可能性があります)。これは計算が安く、高速であるため、おそらく高速衝突に推奨されます。

AABBの1つの問題は、実際に衝突が発生することを保証しないことです。完全に透明な領域が重なっている場合があります。

Ninja Physicsは、複雑なタイルと斜面を可能にし、水平な景色に最適です[...]

AABBが回転しない方法を覚えていますか?Ninja Physicsは回転を処理します(したがって、傾斜や複雑なタイルを作成できます)。これは、より柔軟な(そしておそらくより正確な)物理モデルです。おそらく遅いでしょう。

[...] P2.JSは、制約、スプリング、ポリゴンサポートなどを備えた全身物理システムです。

ばね(振り子のように揺れるものなど)、力の制約、および任意の多角形(四面体など)をモデル化する必要がある場合、これは望みどおりに聞こえます。参照フレームが必要な場合は、Angry Birdsのようなものを考えてください。

ゲームに基づいて、ニーズに最適なものを選択できます。速度対精度/複雑さのスペクトルのように聞こえます(アーケード物理学は最速ですが最も簡単です)。


より正確なモデルの1つの発生はパフォーマンスを低下させますか?
期限切れの忍者

@expiredninjaはい、もちろん。AABBは高速で安価です。他の2つはより複雑で機能が豊富であるため(たとえば、傾斜、回転)、パフォーマンスコストがかかります。
ashes999

私は、しきい値がオブジェクトの数や複雑さの点で一般的にどのようなものであるかについて疑問に思っていたと思います。
期限切れの忍者

2
ハードウェアとゲームロジックに大きく依存する@expiredninja。別の質問を開くことをお勧めします。または、さらに良いことに、試してみて、ニーズに最適なものを確認してください。
ashes999
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.