Python PyGame定时器不';t以预期速率释放事件
我正在使用Python PyGame定时器不';t以预期速率释放事件,python,pygame,Python,Pygame,我正在使用pygame.time.set_timer(事件,毫秒)将2个USEREVENTs添加到队列中;USEREVENT每秒+1次(1000毫秒),USEREVENT每5毫秒。这意味着,对于每个USEREVENT+1,我会得到200个USEREVENT。我只有100个项目 似乎10ms是计时器可以拥有的最小延迟。我试图用它来控制我的FPS,USEREVENT+1发出信号,以“更新”游戏逻辑,但如果计时器的下限为10毫秒,那就意味着我不能超过100 FPS。有人知道为什么吗 另外,对于奖励积分
pygame.time.set_timer(事件,毫秒)
将2个USEREVENTs添加到队列中;USEREVENT每秒+1次(1000毫秒),USEREVENT每5毫秒。这意味着,对于每个USEREVENT+1,我会得到200个USEREVENT。我只有100个项目
似乎10ms是计时器可以拥有的最小延迟。我试图用它来控制我的FPS,USEREVENT+1发出信号,以“更新”游戏逻辑,但如果计时器的下限为10毫秒,那就意味着我不能超过100 FPS。有人知道为什么吗
另外,对于奖励积分,毫秒必须是整数,这意味着我只能有1000倍的fps(例如10、20、25、50、100)。你认为我如何用这种方法达到,比如说,60帧每秒?最初,我一直在睡觉,直到下一帧的时间,但我希望它对CPU好一点,所以我希望在滴答声之间空闲。这就是我使用pygame.time.set_timer的原因,因为pygame.event.wait在事件出现在队列上之前一直处于空闲状态。要限制FPS,请使用:
Clock.tick(FPS_cap)
此方法应每帧调用一次。它会计算出有多少
自上次调用以来已过毫秒
如果传递可选的framerate参数,函数将延迟到
保持游戏运行速度低于每秒给定的滴答声。这个可以
用于帮助限制游戏的运行速度。打电话
时钟。每帧勾选(40)一次,程序的运行速度永远不会超过
每秒40帧
请注意,此函数使用的SDL_延迟函数不准确
在每个平台上,但不使用太多cpu。如果需要,请使用勾选忙循环
你想要一个精确的计时器,而且不介意咀嚼cpu
要限制FPS,请使用:
Clock.tick(FPS\u cap)
此方法应每帧调用一次。它会计算出有多少
自上次调用以来已过毫秒
如果传递可选的framerate参数,函数将延迟到
保持游戏运行速度低于每秒给定的滴答声。这个可以
用于帮助限制游戏的运行速度。打电话
时钟。每帧勾选(40)一次,程序的运行速度永远不会超过
每秒40帧
请注意,此函数使用的SDL_延迟函数不准确
在每个平台上,但不使用太多cpu。如果需要,请使用勾选忙循环
你想要一个精确的计时器,而且不介意咀嚼cpu
不幸的是,我想要两个帧率——一个用于游戏节拍,一个用于刷新。然而,我已经把一切都弄明白了(我决定坚持1000的倍数,不管怎样,它看起来很平滑),所以我会按你现在的样子给你上一票,从技术上来说,是正确的。:)谢谢在这种情况下,您可能会对以下内容感兴趣:恒定的物理更新,但可变的fps速率。不幸的是,我想要两个帧率——一个用于游戏计时,一个用于刷新。然而,我已经把一切都弄明白了(我决定坚持1000的倍数,不管怎样,它看起来很平滑),所以我会按你现在的样子给你上一票,从技术上来说,是正确的。:)谢谢在这种情况下,您可能会对以下内容感兴趣:恒定的物理更新,但可变的fps速率。以及安排回调。