0

下矢印をクリックすると、2 番目の選択でスタックし、上または下が機能しなくなります。どうすれば修正できますか?

2 番目の質問: メニュー項目を変更するときにフリーズしないようにするにはどうすればよいですか? メニュー項目を変更すると、2 番目の選択がフリーズします。この質問に関するコードは次のとおりです。

keyboard = Keyboard.GetState();
mouse = Mouse.GetState();

    if (keyboard.IsKeyUp(Keys.Up) && prevKeyboard.IsKeyDown(Keys.Down))
    {
        if (selected > 0) selected--;
        else selected.Equals(buttonList.Count - 1);
    }

    if (keyboard.IsKeyUp(Keys.Up) && prevKeyboard.IsKeyDown(Keys.Down))
    {
        if (selected < buttonList.Count - 1) selected++;
        else selected.Equals(0);
    }

    prevMouse = mouse;
    prevKeyboard = keyboard;
}
4

2 に答える 2

2

あなたのifステートメントはあまり意味がなく、どちらもまったく同じです。

if (keyboard.IsKeyUp(Keys.Up) && prevKeyboard.IsKeyDown(Keys.Down))

しかし、それらが同じであることを意図している場合、それらを1つにまとめただけだと思う​​でしょう。

次のパラダイムを使用しようとしているようです

if (keyboard.IsKeyUp(Keys.Down) && prevKeyboard.IsKeyDown(Keys.Down))

...

if (keyboard.IsKeyUp(Keys.Up) && prevKeyboard.IsKeyDown(Keys.Up))

私が気付いたもう1つの奇妙な点は、メソッドの使用Equals()方法です。

戻り値で何もしていません。

Equals()比較に使用され、要素が等しいかどうかを示すboolを返しますが、代入などに使用しているようです。

次のようなものを探していますか

else 
    selected = 0;

それ以外の

else selected.Equals(0);
于 2013-05-14T14:29:01.443 に答える