释放键后保持输出 c# XNA

keeping output after key is released c# XNA

我目前正在制作 "Player Select" 打败他们的屏幕。我有六个字符串的数组(玩家一,玩家二......)。玩家当前的选择被突出显示,当他们按下回车键时,我希望出现一个子菜单,让他们可以选择取消或确认他们的决定。

我的问题是当用户释放回车键时让子菜单停留在后面。在下面的代码中,"Decide" 是子菜单数组的名称。谁能指出我正确的方向?

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);

        }

不是在 "Is the enter key down" 条件下直接触发 (当他们松开按键时,这显然变为假),而是按下按键设置一些 其他 变量:

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

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

一般来说,您不应在 Draw 调用中检查 UI 状态。您应该做的唯一检查是针对内部状态。