gpt4 book ai didi

c# - 在 XNA 中等待 KeyPressed

转载 作者:行者123 更新时间:2023-11-30 22:01:12 25 4
gpt4 key购买 nike

我正在尝试学习 XNA 游戏编程,现在我想等待按下某个键我有测试它:

while (IsKeyPressed = Keyboard.GetState().IsKeyDown(key));

但是 IsKeyPressed 在释放按键时也为真

最佳答案

该代码实际上是一个自旋锁。 不要使用自旋锁

您看到的错误很可能是因为您正在使用自旋锁,它没有机会正确更新。

相反,您应该读取按下的键,并在与停止处理相关的任何类中设置状态(可能是一个简单的 if 检查 Update 函数)。然后,当您检测到发布时,您可以更改状态,以便 if 检查通过。

类似于:

 //Main Update
if (Keyboard.GetState().IsKeyDown(key))
myObject.Wait();
else
myObject.Continue();

//Other object
public void Wait()
{
waiting = true;
}

public void Continue()
{
waiting = false;
}

public void Update()
{
if (!waiting)
{
//Update state
}
}

您始终可以检查以前的状态以避免重复调用 WaitContinue,但这将是对所提供代码的微优化。

关于c# - 在 XNA 中等待 KeyPressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27950250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com