如何在pygame中为运行游戏的任何类型的显示器设置合适的fps数字?我知道我可以使用pygame.time.Clock().tick(fps)
设置fps但是如何设置合适的fps?
请发布示例python代码和答案。
答案 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类的一部分来确定何时应该将新敌人产生到地图,以及确定游戏中敌人和子弹的移动。
这种方法可以在多种帧速率下保持游戏的大致相同。