释放键后保持输出 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 状态。您应该做的唯一检查是针对内部状态。
我目前正在制作 "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 状态。您应该做的唯一检查是针对内部状态。