游戏循环中的c# KeyDown事件
本文关键字:KeyDown 事件 循环 游戏 | 更新日期: 2023-09-27 18:11:40
我正在制作一款用c#编写的游戏,但却陷入了困境。背景一直在移动,这是在一个循环中用Timer来确保背景一直在移动。现在,我需要检查用户是否按下空格键将玩家向上移动。如何检查是否有keydown事件?我不能使用KeyDown事件子,因为游戏循环一直在工作,所以KeyDown事件子无法工作。我只是想找个方向。谢谢!
在你的tick事件中,你可以检查
if (Keyboard.IsKeyDown(Key.Space))
{
... Do stuff
}
只是猜测,因为您没有提供任何代码。
尝试在每个循环中调用Application.DoEvents();
,并按您的意愿使用KeyDown
。
好吧,这意味着你没有使用游戏循环,但你有一个事件驱动的应用程序(通常是获胜应用程序)。调用Application.DoEvents()
让窗口在常规游戏循环中处理所有回调(不是你的情况)。
我已经更新了代码再次显示它是如何工作的-我相信通过例子学习是好的,但首先,你必须学习基础知识(对不起,但游戏太复杂了,无法学习c#)…
private bool isKeyUpPressed;
private void tmrTick_Tick(object sender, EventArgs e) {
if (isKeyUpPressed)
{
// move player up
}
}
private void Form1_KeyDown(object sender, KeyEventArgs b) {
isKeyUpPressed = b.KeyCode == Keys.Up;
}