0

私は 2D シューティング ゲームを「アステロイド」風にすることを独学しています。つまり、左右のキーを押すと船が向きを変え、前方に押すと向きを変えた方向に船が動きます。

私はなんとか船を横向きに向けることができました。

船の移動のための have のコードはかなり単純です。うまくいけば、解決策も同様に単純です。

私は何を間違っていますか?船はなぜ横向きなのか?乾杯。

float velocity = 5f;

double angle = 0;

Vector2 trajectory = new Vector2(velocity) * new Vector2((float)Math.Cos((double)angle,(float)Math.Sin((double)angle));

if (Keyboard.GetState().IsKeyDown(Keys.Up))
        {
            location += trajectory;   
        }
4

2 に答える 2

2

あなたが示したコードを考えると、それほど多くはありませんが、私は2つのことを調査します.

まず、計算は問題ないかもしれませんが、船を横向きに描いている可能性があります。

次に、トリガー計算が入れ替わる可能性があります。サインとコサインは互いの 90 度の位相シフトであるため、それらを間違った方法で取得すると、横方向に移動することになる可能性があります。計算が座標系と一致していることを確認する必要があります。

実際には決定的な解決策ではなく、確認すべき点がいくつかありますが、説明したように、詳細を提供するとより良い答えが得られる場合があります.

于 2013-06-08T22:04:51.860 に答える