道路での車の動きを見せたい。位置を含むテキストファイルがあり、車の位置を1秒ごとに更新してムーブメントを作成しました。プレーンが(200,200)であるとしましょう。この画面の外側にある位置に対してどうすればよいですか?どうすればそこで車を追いかけることができますか?カメラか何かを設置する必要がありますか?ちなみに私のアプリは2Dです。
1 に答える
私の経験から、2Dプログラミングでカメラをセットアップするという実際の概念はありませんが、間違っている可能性があります。これは自分で行うか、カメラクラスを作成する必要があります。
私が思うに、車は画面の中央に留まり、その下のすべてが代わりに移動します。あなたが達成しようとしていることに依存します。
したがって、車が20 km / hで北東に移動している場合は、実際に車を移動するのではなく、車の下にあるすべてのものを20km / h(またはフレームあたりのピクセル数)で南西に移動させます。
これは、車を追いかけたい場合です。「カメラ」が範囲外になるたびに車の中央に配置したい場合は、おそらく風景と車を画面の中央に向かって移動する必要があります。
編集:私は車が主な焦点になると思いますか?したがって、常に画面の中央に配置する必要があります。
ゲーム内のすべてのオブジェクトには、velocity
とが必要position
です。はposition
、オブジェクトが現在どこにあるvelocity
かを示し、フレームごとに移動する必要があるxとyの数を示します。だからあなたが言うだろうすべてのフレームposition = position + velocity
。
車以外のオブジェクトは、カメラを追跡しなくても、画面から好きなように移動できるので、放します。車を中央に保ち、車の速度に基づいて他のすべてのオブジェクトの速度を調整します。
元:
Car's velocity (3, 0) ---> means it's moving right in the straight line at 3 pixels per frame
Object 1 velocity (4, 0) ---> means it's also moving right in a straight line but 4 pixels per frame
オブジェクト1の速度は、車の速度に応じて調整する必要があります。だから、言って:
object1.position = object1.position + (object1.velocity - car.velocity)
オブジェクト1の新しい速度は(1、0)であるため、車より1つ速く移動しています。
車が速度を上げて(5、0)とすると、オブジェクト1は1だけ後方に移動しているように見えます。