私は初心者で、Phaserを使用してゲーム開発を学ぼうとしています。現在、Phaserは3つの物理システム、つまりArcade、P2、Ninjaを提供しています。しかし、それらの違いはわかりません。また、どのシナリオで特定の物理システムを使用すべきかを知りたいのですが。
これらの物理システムについての洞察をお願いします。
私は初心者で、Phaserを使用してゲーム開発を学ぼうとしています。現在、Phaserは3つの物理システム、つまりArcade、P2、Ninjaを提供しています。しかし、それらの違いはわかりません。また、どのシナリオで特定の物理システムを使用すべきかを知りたいのですが。
これらの物理システムについての洞察をお願いします。
回答:
コメントで述べたように、彼らのサイトはすでに3つのシステムが何であり、何に使用できるかを説明しています。
Arcade Physicsは、高速AABB衝突専用です。
AABBは、軸に沿った境界のある長方形を意味します。つまり、回転のないオブジェクトがあり、画像(長方形)が別の画像と重複しているかどうかだけをチェックしています(したがって、衝突の可能性があります)。これは計算が安く、高速であるため、おそらく高速衝突に推奨されます。
AABBの1つの問題は、実際に衝突が発生することを保証しないことです。完全に透明な領域が重なっている場合があります。
Ninja Physicsは、複雑なタイルと斜面を可能にし、水平な景色に最適です[...]
AABBが回転しない方法を覚えていますか?Ninja Physicsは回転を処理します(したがって、傾斜や複雑なタイルを作成できます)。これは、より柔軟な(そしておそらくより正確な)物理モデルです。おそらく遅いでしょう。
[...] P2.JSは、制約、スプリング、ポリゴンサポートなどを備えた全身物理システムです。
ばね(振り子のように揺れるものなど)、力の制約、および任意の多角形(四面体など)をモデル化する必要がある場合、これは望みどおりに聞こえます。参照フレームが必要な場合は、Angry Birdsのようなものを考えてください。
ゲームに基づいて、ニーズに最適なものを選択できます。速度対精度/複雑さのスペクトルのように聞こえます(アーケード物理学は最速ですが最も簡単です)。