我目前正在使用PyGame (Python3)制作一个游戏,我正在寻找一种方法来让游戏在固定的每秒帧数下运行。
游戏的大部分位于一个巨大的while循环中,在这个循环中,获取用户输入,渲染精灵,等等。我的目标是能够设置一个固定的FPS,使游戏在快或慢的计算机上以相同的速度运行。
当然,我可以使用pygame中的时钟模块:
clock = pygame.time.Clock()然后将其命名为every循环:
clock.tick(30)但这将使游戏保持在每秒30场的上限。因此,如果我将其设置为500FPS,它可能仍然会像以前一样快。我的目标是,如果我将它设置为500FPS,它将以与500FPS相同的速度运行。
那么,有没有可能让游戏以固定的FPS (或假象)运行,而不考虑计算机的速度-或者至少通过使用某种跳帧算法以相同的速度运行?
如果用词有点混乱的话,我很抱歉。
发布于 2016-02-25 14:36:20
clock.tick返回自上次调用clock.tick以来的时间。当你移动时,使用这个值并乘以你所有的速度。示例
dt = clock.tick(60)
player.position.x += player.xSpeed * dt
player.position.y += player.ySpeed * dt这样,您的玩家将始终以相同的速度移动,而与您在clock.tick()函数中输入的内容无关。
重要的是每帧只调用一次clock.tick()。
https://stackoverflow.com/questions/35617246
复制相似问题