如何在curses程序中限制帧率?

时间:2011-05-13 13:29:10

标签: c curses frame-rate

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

2 个答案:

答案 0 :(得分:4)

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

new_position = old_position + delta*speed

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

答案 1 :(得分:1)

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

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