0

だから私は、以前にキーボードを使ってやったゲームパッドを使って、とても簡単なことをしようとしています。それは、前回の更新でどのボタンが押されたかを記録する古い状態を作成することです。

したがって、キーボードを使用すると、次のようなコードが得られました。

oldKeyboard = currentKeyboard;

これは私の更新の最後に配置され、次の更新で次のような if ステートメントを持つことができることを意味しました

if (currentKeyboard.IsKeyDown(Keys.A) &&(oldKeyboard.IsKeyUp(Keys.A))
{
guy.drawRect.X ++;
}

私が今抱えている問題は、コードで Xbox ゲームパッドを使用していて、正しいコードが何であるかわからないことです。現在、これは私が持っているものであり、機能していません:P. どんな助けでも大歓迎です。

 void ShipUpdate(GamePadState Curr, GamePadState Old)
    {
        Curr = GamePad.GetState(PlayerIndex.One);

        if (Old.ThumbSticks.Left.X > 0.0f && (Curr.ThumbSticks.Left.X == 0.0f))
        {
            move = MoveState.Still;
            guy.srcRect.X = 0;
        }

        Old = Curr;


    }

ここでは重要でないコードをすべて取り除いたので、これは JEEP です

4

1 に答える 1

0

実際には古い状態を更新していません。それらを引数として渡しているので、GamePadState は実際には構造体なので、

 Old = Curr;

「古い」変数のローカル コピーのみを更新します。のように参照で渡します

 void ShipUpdate(ref GamePadState Curr, ref GamePadState Old)
于 2013-06-02T19:02:35.933 に答える