首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pygame中设置固定的FPS,Python 3

问在Pygame中设置固定的FPS,Python 3
EN

Stack Overflow用户
提问于 2016-02-25 10:43:35
回答 1查看 35.4K关注 0票数 7

我目前正在使用PyGame (Python3)制作一个游戏,我正在寻找一种方法来让游戏在固定的每秒帧数下运行。

游戏的大部分位于一个巨大的while循环中,在这个循环中,获取用户输入,渲染精灵,等等。我的目标是能够设置一个固定的FPS,使游戏在快或慢的计算机上以相同的速度运行。

当然,我可以使用pygame中的时钟模块:

代码语言:javascript
复制
clock = pygame.time.Clock()

然后将其命名为every循环:

代码语言:javascript
复制
clock.tick(30)

但这将使游戏保持在每秒30场的上限。因此,如果我将其设置为500FPS,它可能仍然会像以前一样快。我的目标是,如果我将它设置为500FPS,它将以与500FPS相同的速度运行。

那么,有没有可能让游戏以固定的FPS (或假象)运行,而不考虑计算机的速度-或者至少通过使用某种跳帧算法以相同的速度运行?

如果用词有点混乱的话,我很抱歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-25 14:36:20

clock.tick返回自上次调用clock.tick以来的时间。当你移动时,使用这个值并乘以你所有的速度。示例

代码语言:javascript
复制
dt = clock.tick(60)
player.position.x += player.xSpeed * dt
player.position.y += player.ySpeed * dt

这样,您的玩家将始终以相同的速度移动,而与您在clock.tick()函数中输入的内容无关。

重要的是每帧只调用一次clock.tick()。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35617246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档