gpt4 book ai didi

没有多线程的C++实时蛇形游戏机

转载 作者:行者123 更新时间:2023-11-30 01:45:40 28 4
gpt4 key购买 nike

我想使用 C++ 在控制台中制作贪吃蛇游戏,但我不想等待用户输入的每个“帧”。如果我将使用 cin 或 getch(),程序将在每一帧等待玩家输入:

while (game)
{
c = getch (); //input
snake.move (c); //moving
draw (); //drawing
}

如何移动蛇并在控制台中绘制它而不是每帧都等待输入?

没有多重威胁有没有办法做到这一点?也许像在代码中将某些东西放入 cin 缓冲区而不是使用控制台?可行吗?

最佳答案

您不能使用标准 C++,因为无法保证当用户按下某个键时,该按键会立即得到确认。许多实现等待 Enter 键被按下,然后处理输入缓冲区。

您将需要一个事件驱动系统。您希望操作系统或硬件通知您的程序已发生按键事件。在这种系统中,您将在事件处理程序期间移动蛇。

另一种方法是轮询开关状态。当释放键时,您可以移动蛇。

所有上述解决方案都需要特定于平台或操作系统的功能。

关于没有多线程的C++实时蛇形游戏机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275178/

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