XNA键盘输入
本文关键字:输入 键盘 XNA | 更新日期: 2023-09-27 18:08:56
我在注册键盘输入时遇到了一个小错误。
case GameState.InGame:
{
**if (PlayerInput.IsKeyUp(Keys.P)&& oldInput.IsKeyDown(Keys.P))**
this.gameState = GameState.Paused;
}
break;
case GameState.Paused:
{
**if (PlayerInput.IsKeyDown(Keys.P) && oldInput.IsKeyUp(Keys.P))**
this.gameState = GameState.InGame;
}
break;
现在的情况是它进入了暂停游戏状态。但是当尝试从暂停状态切换到InGame状态时,只要按下"P"键,它就会回到暂停状态。
在第一种情况下,您正在测试从UP到DOWN的键转换,在第二种情况下,从DOWN到UP。
当按钮被按下时切换游戏状态
if (PlayerInput.IsKeyDown(Keys.P) && oldInput.IsKeyUp(Keys.P))
{
switch (this.gameState)
{
case GameState.Paused:
this.gameState = GameState.InGame;
break;
case GameState.InGame:
this.gameState = GameState.Paused;
break;
}
}
或者,如果你愿意:
if (PlayerInput.IsKeyDown(Keys.P) && oldInput.IsKeyUp(Keys.P))
{
this.gameState = this.gameState == GameState.Paused ? GameState.InGame : GameState.Paused;
}