2Dプラットフォーム/横スクロールゲームの重力、ジャンプアクションなどをプログラミングするための2Dゲーム物理学などのライブラリを教えてもらえますか? または、マリオやソニックなどのサイド スクローラーのアルゴリズムをいくつか提案していただけますか?
11 に答える
シマリスがあなたのニーズを満たすかもしれないように思えます。
あなたの最善の策はおそらくBox2Dです。2D物理を実行し、多数のオプションがあり、既存のプロジェクトに非常に簡単に統合できます。固定ボディのデフォルトではCCDを実行しますが、任意の剛体を選択的にCCD計算に含めることができます。
重力だけが必要な場合は、5分で自分でプログラムできます。自由落下するオブジェクトは、毎秒9.8メートルで加速します。つまり、オブジェクトの下向きの速度は、毎秒9.8メートルの自由落下で増加します。ゲームの場合、その9.8をフレームレートで割る必要があります。ジャンプするには、かなりの負の垂直速度を選択し、ジャンプした瞬間にキャラクターに適用し、フレームごとの重力の増分でデクリメントします。2Dサイドスクローラーの3D背景を探しているのでない限り、マリオのようなものに必要なのはこれだけです。
もっと凝ったものにしたい場合は、物体の衝撃力を考慮に入れて、落下する物体が人を傷つけたり、舗装などにひびを入れたりするようにすることができます。これには、運動エネルギーの式を使用します。KE = 1/2 * M * V ^ 2、ここでMは質量、Vは速度です。
どのプラットフォームをお探しですか?どのライブラリを使用するかは、これによって異なります。
XNAフレームワークの場合、Farseerは非常に優れています。
質問の 2 番目の部分に答えるには、単純な 2D プラットフォーマーがどのように機能するかを理解したい場合は、N のチュートリアルを読んでください。はい、N はフラッシュ ベースのゲームですが、「実際の」ゲームのように構築されていないという意味ではありません。そのため、衝突検出 (および応答) のチュートリアルは非常に当てはまります。これらは、幾何学的な概念を示すためにいくつかの直感的なデモがページに埋め込まれているため、簡単に読むことができます。
Havokエンジンを見ることができます。彼らは非営利目的で無料版をリリースしたと思います。物理を2つの平面(この場合はxとy)に拘束できるようにする拘束キットがあります。
ほとんどの2D横スクロールプラットフォームゲームの物理特性は非常に単純なので、自分で簡単に実装できます。どんな効果をお探しですか?
時間があれば、PhysXを使用できますが、2Dでは過剰に殺される可能性があります。それに加えて、ゲームをPCで動作させることを計画していて、いくつかのクールな物理学が必要な場合は、「ベレの統合」をグーグルで試してみてください。
私は個人的なプロジェクトでBox2Dを使用しました。これは、2D物理シミュレーションAPIです。ただし、必要なのがゲーム/グラフィックAPIである場合は、やり過ぎかもしれません。
この男はJavascriptゲームで多くの仕事をしました:
opendeでも2d 物理演算を行うことができます