gpt4 book ai didi

python - Pygame time.clock() 奇怪的行为

转载 作者:行者123 更新时间:2023-12-01 08:50:45 26 4
gpt4 key购买 nike

我正在尝试使用 pygame 创建一个简单的游戏,到目前为止一切正常。最近几天,我意识到 time.clock() 出现了问题。我阅读了文档,该函数应该计算游戏自开始以来的时间。我想每 8 秒生成一个外星人组,它成功了(我正在 debian 操作系统上工作),但正如我在过去 2 天提到的那样,它不能正确计数。系统需要大约 20 秒的实时时间,以便 time.clock 打印 8.0 并生成外星人,一开始我以为我搞砸了计数器,但怎么可能呢,一开始工作得很好,所以我尝试了在 Windows 分区上运行相同的代码也很好。那么这是系统时钟的问题还是其他什么问题呢?我用 time.time 替换了 debian 上的 time.clock 并且工作得很好。过去有人遇到过同样的问题吗?你能帮我检查一下是否还有其他问题吗(两个操作系统都运行 python 3.6)?如果您不明白或需要更多内容,请问我。

感谢您的宝贵时间

这是游戏中 time.clock 使用的一部分:

sergeant_spawn_time_limit = 8.0
sergeant_spawn_time = 0.0
if game_stage == 2 or game_stage == 3 or score >= 400:
if time.clock() - sergeant_spawn_time > sergeant_spawn_time_limit:
for spawn_sergeant in range(5):
sergeant = AlienSergeant(display_width, display_height, 50, 88)
all_sprites_list.add(sergeant)
alien_sergeant_list.add(sergeant)
sergeant_spawn_time = time.clock()

最佳答案

time.clock() 的行为取决于平台:

time.clock()
On Unix, return the current processor time as a floating point number expressed in seconds. The precision, and in fact the very definition of the meaning of “processor time”, depends on that of the C function of the same name.

On Windows, this function returns wall-clock seconds elapsed since the first call to this function, as a floating point number, based on the Win32 function QueryPerformanceCounter(). The resolution is typically better than one microsecond.

Deprecated since version 3.3: The behaviour of this function depends on the platform: use perf_counter() or process_time() instead, depending on your requirements, to have a well defined behaviour.

所以这里使用的工具确实是错误的。使用 time.time() 或 pygame 的时钟或其内置事件系统。您会发现很多示例,例如 herehere .

关于python - Pygame time.clock() 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53141921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com