0

横スクロールシューティングゲームを作っています。現在、キャラクターを右に水平に撃っています。画面のどこでも彼に撃ってもらいたいです。

弾丸がどの角度で発射されるかを把握するために atan2 を使用する必要があることは理解していますが、それをゲームに実装する方法がわかりません。

私の質問は、画面上のタッチの座標を atan2 に呼び出すにはどうすればよいですか? これをタッチコマンドコードまたは発射体のクラスに配置しますか。最後に、速度を上げるために別の atan2 を実行する必要がありますか?

4

2 に答える 2

0

三角法は必要ありません。使用しないでください。速度が遅く、不正確であり、符号 (+/-) のケースが多いため、間違いを犯す可能性があります。

線形代数を使えば、必要なことはすべてできるはずです。角度ではなく、ベクトルを使用します。

于 2013-02-26T22:10:52.273 に答える
0

まず、プレーヤーのベクトルが必要です

P = (a, b)

そしてあなたの撮影ポイントの位置

T = (x, y)

これにより、P から T へのベクトル (x - a, y - b) が得られます。取ることによって

角度 = atan2 (yb、xa)

そこから、撮影をどのように実装するかによって異なります。

繰り返しますが、atan2 が行うことは角度を見つけることだけです。

速度のために別の atan2 を実行する必要がありますか

角度に応じて発射体を異なる速度で移動させるかどうかによって異なります。実際、発射物を回転させている場合にのみ角度が必要です。それ以外の場合は、ベクトルに沿って移動するだけです (円の場合は、どの方向を向いていてもかまいません!)。

于 2013-02-26T21:03:04.743 に答える