我目前正在使用Python开发一个学校项目,我和一些朋友尝试编写#34; Connect Four"我们必须使用tkinter作为GUI。
我目前的目标是为坠落的硬币设置动画。我读了一些关于的文章 tkinter .after()方法,但我不确定如何将其正确地应用到单个函数中(它应该循环几次直到硬币位于其最终位置)
time.sleep方法不好(冻结gui,没有动画显示),我知道:(
这里是简化的代码>>我也有一个想法,使用after方法,让被调用的函数返回一些东西,但我不知道如何做到这一点。
如果有人提示如何使这个工作
会很好 def addCoin(self, x):
#gets called when the button is pressed, x is the column
#seachest the highest(lowest on screen) free field >> the final field
maxdown = 0
#self.y >> fieldsize, maxdown is correct
while maxdown < self.y and self.getValue(x, maxdown) == 0:
maxdown +=1
#to get the last empty field, not the first full
maxdown -= 1
print(str(maxdown)+" is the next empty field")
if maxdown < 0:
print("you cant place a coin here")
return
#animation, which is my problem
animy = 0
while animy < maxdown:
#set field color to playercolor, wait , set field white, next field
self.setValue(x, animy, self.activeplayer.nr)
time.sleep(0.15)
self.setValue(x, animy, 0)
animy += 1
#After animation, check for win, works fine