Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyGame定时器不';t以预期速率释放事件_Python_Pygame - Fatal编程技术网

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速率。以及安排回调。