Python tkinter对after的调用也是s

2024-05-13 23:24:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为代码golf开发一个python和tkinter解决方案:https://codegolf.stackexchange.com/questions/26824/frogger-ish-game/

我的回答是python2.7版本。问题是,当我在2008年的macpro上运行这段代码时,一切正常。当我在Win7上运行它时(我在几个不同的机器上尝试过,结果相同),主更新循环运行得太慢了。您会注意到,我用1毫秒的内部时钟设计了我的实现:

if(self.gameover == False):
 self.root.after(1, self.process_world)

经验测试表明,这比每1毫秒慢得多。这是众所周知的windows7特有的行为吗?我没能找到很多关于after()调用滞后这么多的信息。我知道调用应该在给定的时间后“至少”执行,而不是“最多”,但是我看到每20秒有1000个更新周期,而不是每1秒,并且20的系数似乎过大。显示游戏时钟的计时器循环工作得非常好。我以为罪魁祸首可能是我的线程锁的安排,但评论出来没有什么区别。这是我第一次使用tkinter,所以我将非常感谢任何帮助和/或建议!在


Tags: 代码httpsselfcomgametkinter解决方案时钟