1

純粋な HTML5 と JavaScript で小さなプラットフォーム ゲームを作ろうとしています。フレームワークはありません。

したがって、キャラクターを敵や床/壁などの上にジャンプさせるには、適切な衝突検出アルゴリズムが必要です。

私は通常、これを行うことに興味がないので。私は本当に問題にアプローチする方法について手がかりがありません。

すべてのフレーム (30 FPS で実行) でキャンバス内のすべての障害物を再チェックし、プレイヤーと衝突するかどうかを確認する必要がありますか、それともより適切で高速な方法はありますか?

ダイナミック マップを作成することも考えました。そのため、障害物の幅、高さ、x および y 座標がオブジェクトに格納されます。プレイヤーと衝突しているかどうかを確認するのが速くなりますか?

4

2 に答える 2

-2

私はまだ多くの div を作成し、それらを物理的に動作させたいと思っていたことに取り組んでいます。最初はわかりにくかったことを共有します。

  1. 最初にデータの衝突を検出します。画面上のボックスの x と y を読み取ってから、他の div と照合していました。1週間後、これがいかに馬鹿げているかを思い知らされました。つまり、最初に新しい値を div に割り当ててから、それを div から読み取ります。div へのアクセスはコストがかかります。dom をレンダリング段階と考えてください。
  2. 可能であれば簡単にウェブワーカーを使用してください。
  3. 可能であればキャンバスを使用してください。
  4. また、可能であれば、衝突をチェックする必要がある要素のリストを含む要素を作成します (これは、特定の場合にのみ役立ちます)。

インタラクティブな衝突はコストがかかることを学びました。通常のインタラクションでは、将来何が起こるかをシミュレートしながら環境の変化をチェックする必要があるため、アニメーションはより流動的になり、より多くの CPU を使用できるようになります。

私は楽しみのために非常に初期の段階で何かを作りました: http://www.lastnoob.com/

于 2013-08-04T08:50:10.737 に答える