我一直在尝试使用ncurses制作游戏。 但是,我对如何使主循环的计时部分工作感到困惑。 是否有人能够在我的主循环中添加帧速率代码,同时保持可移植性并且不影响速度。 提前谢谢!
答案 0 :(得分:4)
我认为处理这类问题的正常方法是将自上一个循环(通常称为delta)以来的持续时间作为系统的参数传递。这允许您根据已经过的实际时间量更新游戏中实体的进度。例如:
new_position = old_position + delta*speed
这允许游戏中的实体以恒定的速度移动,而与程序的帧速率无关。
答案 1 :(得分:1)
假设你有一段时间后更新游戏状态的功能,接下来你需要能够轮询用户输入。如果没有另外指定,ncurses将在您请求输入时阻止。要防止这种情况,请查找init函数here。特别是,halfdelay()函数可以使用你(它实现了一种帧率)。
请记住在使用此模式时检查getch()返回值的ERR。