2

我一直在尝试使用 ncurses 制作游戏。但是,我对如何使主循环的计时部分起作用感到困惑。是否有人能够对我如何将帧速率代码添加到我的主循环中添加一些见解,同时保持可移植性并且不影响速度。提前致谢!

4

2 回答 2

4

我认为处理此类问题的正常方法是将自上次循环以来的持续时间(通常称为增量)作为参数传递给系统。这允许您根据已经过去的真实世界时间量来更新游戏中实体的进度。例如:

new_position = old_position + delta*speed

这允许游戏中的实体以恒定的速度移动,而与程序的帧速率无关。

于 2011-05-13T14:19:21.827 回答
1

假设您具有在一小段时间后更新游戏状态的功能,接下来您需要能够轮询用户以获取输入。如果您没有另外指定,ncurses 将在您要求输入时阻塞。为防止这种情况,请在此处查找 init 函数。特别是,halfdelay() 函数可能对您有用(它实现了一种帧速率)。

请记住在使用此模式时检查 getch() 的返回值是否存在 ERR。

于 2011-05-13T14:45:30.897 回答