在密钥释放后保持输出c#XNA

时间:2015-03-06 17:21:33

标签: c# arrays string xna

我目前正在制作"播放器选择"屏幕为Beat em'起来。我有一个六个字符串的数组(播放器一,播放器二......)。当前选择被突出显示,当他们按下回车键时,我想要一个子菜单,让他们可以选择取消或确认他们的决定。

我的问题是当用户释放回车键时,子菜单会保持不变。在以下代码"决定"是子菜单数组的名称。有人能指出我正确的方向吗?

for (int i = 0; i < Decide.Length; i++)
        {

        if (prevKeyboardState.IsKeyDown(Keys.Enter) && !keyboardState.IsKeyDown(Keys.Enter))

            spriteBatch.DrawString(spriteFont, Decide[i], location, Color.White);

        }

1 个答案:

答案 0 :(得分:1)

而不是直接触发上的“is Enter key down”条件(当它们释放密钥时显然会变为假),而是按下键设置了一些其他变量:

//Update
if (prevKeyboardState.IsKeyDown(Keys.Enter) &&  !keyboardState.IsKeyDown(Keys.Enter))
   displayConfirmMenu = true;

//Draw
if (displayConfirmMenu)
   DrawSprite(...);

通常,您不应在Draw来电中检查用户界面状态。您应该做的唯一检查是针对内部状态。