我一直在处理代码高尔夫的python和tkinter解决方案:https://codegolf.stackexchange.com/questions/26824/frogger-ish-game/
我的回答是Python 2.7。问题是,当我在2008 mac pro上运行此代码时,一切正常。当我在Win7上运行它时(我在几台不同的机器上尝试了这个,结果相同),主更新循环运行得太慢了。您会注意到我使用1毫秒内部时钟设计了我的实现:
if(self.gameover == False):
self.root.after(1, self.process_world)
经验测试显示,这比每1毫秒运行得多,慢得多。这是一个众所周知的Windows 7特有的行为吗?我无法找到很多关于After()落后的电话的信息。我知道这个电话应该被执行"至少"在给定的时间之后,而不是"最多",但我看到每20秒而不是每1秒1000次更新滴答,并且20倍似乎过多。显示游戏时钟的计时器循环非常有效。我认为可能罪魁祸首是我的线程锁安排,但评论说没有区别。这是我第一次使用tkinter,所以我很感激任何帮助和/或建议!