0

画面上/仮想ジョイスティックを使用してゲームを作成しています。ジョイスティック自体は正常に動作します。

私が欲しいのは、ジョイスティックを回すと、その方向に弾丸が発射されることです。私もそれを機能させました。ジョイスティックが端/半径にないときに弾丸を撃つと、問題が発生します。

ジョイスティックが端/半径にあるとき、弾丸はまさに私が望む最高速度で動きます。しかし、ジョイスティックが、たとえば、ジョイスティックの半径と中心の間のどこかにある場合、弾丸の動きは遅くなります。これは、ラジアンなどの理由で論理的です。

しかし、それは私が望むものではありません。何が起こるべきかというと、弾丸は常に最大速度で移動します。

これを達成する方法を知っている人はいますか?私はこれで完全に立ち往生しています。

ありがとう!

編集:私はまだこれをまったく理解していないので、基本的に私が望むのは、円内にラジアンの点があり、円の端にあるその点の位置を取得したいということです。

では、この Vector2 がラジアンであるとしましょう。

    Vector2(-0.3, 0.3);

円の半径は 40 です。

円の中心から Vector2 ポイントまでの長さは、おそらくどこかにあるでしょう。

    radius = 40 * 0.3 = 12

長さが 40 の場合、Vector2 のポイントはどうなるでしょうか。

私はこれを理解できないようです。三角法は私の強みではありません。

4

1 に答える 1

0

それを私が直した!ジョイスティックの localPosition に非常に大きな数を掛けただけなので、localPosition は半径の外側になります。次に、clampMagnitude を使用して、半径の端でそれを取得します。これで正しい動作が得られました。

于 2013-08-30T09:51:33.163 に答える