如何在pygame中设置fps以防止滞后?

时间:2014-01-20 13:02:41

标签: python-2.7 pygame frame-rate

如何在pygame中为运行游戏的任何类型的显示器设置合适的fps数字?我知道我可以使用pygame.time.Clock().tick(fps)设置fps但是如何设置合适的fps?

请发布示例python代码和答案。

2 个答案:

答案 0 :(得分:2)

我不完全确定我理解被问到的问题,但我认为您只需要尝试不同的数字并找出适合您的问题。我发现大约50-100是一个很好的范围。

如果您要做的是让游戏事件每秒更新一次,而渲染的速度与计算机能够处理速度一样快,这是一个非常复杂的过程,可能不是很容易完成pygame的。

答案 1 :(得分:1)

我发现的技巧不是限制帧速率,而是根据时间计算。 pygame.time.Clock.tick()以毫秒为单位返回时间,然后您可以将其传递给程序的其他部分以计算事件或动画更新。

例如,我目前在我的Player对象中使用一对变量来存储玩家角色的中心点乘以1000,以便能够将其作为来自tick()的int更新。我想在解决了玩家移动的方向后,用以下代码更新每个循环:

    self.x += self.speed * time * xmove
    self.y += self.speed * time * ymove
    self.rect.centerx = self.x / 1000
    self.rect.centery = self.y / 1000

此外,我使用相同的time变量作为Spawner类的一部分来确定何时应该将新敌人产生到地图,以及确定游戏中敌人和子弹的移动。

这种方法可以在多种帧速率下保持游戏的大致相同。