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

本文关键字:输出 c#XNA 密钥 释放 | 更新日期: 2024-10-19 14:18:34

我目前正在为Beat-em'up制作"玩家选择"屏幕。我有一个由六个字符串组成的数组(玩家一、玩家二…)。玩家当前的选择会突出显示,当他们按下回车键时,我希望出现一个子菜单,让他们可以选择取消或确认自己的决定。

我的问题是,当用户释放回车键时,让子菜单停留在后面。在以下代码中,"Decision"是子菜单阵列的名称。有人能给我指正确的方向吗?

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

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

不是在"输入键按下了吗"条件下直接触发(当他们松开键时,这显然会变为假),而是按下键设置一些其他变量:

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

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