我目前正在制作"播放器选择"屏幕为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);
}
答案 0 :(得分:1)
而不是直接触发上的“is Enter key down”条件(当它们释放密钥时显然会变为假),而是按下键设置了一些其他变量:
//Update
if (prevKeyboardState.IsKeyDown(Keys.Enter) && !keyboardState.IsKeyDown(Keys.Enter))
displayConfirmMenu = true;
//Draw
if (displayConfirmMenu)
DrawSprite(...);
通常,您不应在Draw
来电中检查用户界面状态。您应该做的唯一检查是针对内部状态。