0

まず第一に、私はブラジル人であるために英語があまり得意ではない場合は申し訳ありません。質問を適切に説明するように努めます。

さて、私は 2D タイル ベースのゲームを開発しています。エンティティ内で、Projectileクラスを作成しています。今のところ、投射物は東西南北に移動できますが、どの方向にも移動させる必要があります。少し検索しましたが、Ray 2D に関する適切なチュートリアルや例は見つかりませんでした (光線ベースの照明についてのみ見つかりました)。

例えば:

x        
 \           x
  \         /
   \       /
    f     f

[x = projectile start position, f = projectile end position]

発射体が X と Y (幅と高さは関係ありません) で構成され、すべてのティックを移動すると仮定すると、どうすればこれを達成できますか?

4

2 に答える 2

0

ポイントをフレームごとに一定量移動する方法を尋ねていると仮定すると、それは簡単です。発射物にはすでにXとY(その位置)があります。その方向/速度用に別のXとYを作成してから、各フレームに追加することをお勧めします位置までの速度 ( Position += velocity)。現在の位置に追加しているため、方向/速度はそのオブジェクトに対してローカルです。たとえば、方向/速度の X を正にするだけです。

単純に移動するために光線を使用することは、タイルとの衝突を実装する場合を除き、非常に効率的な方法ではないと思います (リンクが役立つ場合) - とにかく方向を保存する必要があります。

ベクトル (基本的には、便利な関数のクラスとしての X と Y) について調べることをお勧めします。位置や方向などの座標を含むものを保存するのに非常に便利です。これは、光線について学びたいと思ったときに従ったチュートリアルです。これは、ベクトルとプログラミングの一般的な数学の側面についての優れた入門書です

于 2014-04-29T20:48:57.233 に答える