如何在一定时间内将对象移动到特定位置?

时间:2018-05-04 19:04:23

标签: python python-3.x tkinter time

def showGameFrame():
    count=0
    while count != 400:
        c.move(theFrame, 0, 10)
        c.move(gameLabel, 0, -10)
        playButton.place_forget()
        quitButton.place_forget()
        count = count+1
    if count == 400:
        window.after(30, showGameFrame)
        window.after(3000, logged)
        play1.terminate()

我试图让我的对象向下移动一段时间,但我现在的代码没有显示对象浮动或向上的动画。

我想知道是否有正确的方法在一定时间内将对象或图像移动到某个位置?

2 个答案:

答案 0 :(得分:-1)

您可以使用时间模块在一段时间内每秒执行一次代码。特别是time.sleep()

我认为使用你的方法没有错。虽然我认为使用<更有意义。在这种情况下:

>>> import time
>>> count = 0
>>> while count < 400:
...     count += 1
...     print(count)
...     time.sleep(1)
...
1
2

您还可以考虑使用带有范围而不是while循环的for循环:

>>> import time
>>> for count in range(0,400):
...     print(count)
...     time.sleep(1)
...
0
1
2

如果您需要毫秒,请将time.sleep(1)更改为time.sleep(0.001)

另一种方法:

>>> import time
>>> timenow = int(time.time())
>>> while (int(time.time()) - timenow) < 400:
...     print(int(time.time()) - timenow)
...     time.sleep(1)
...
0
1
2
3
4
5

或者如果您想要毫秒而不是。

>>> import time
>>> timenow = time.time()
>>> while (time.time() - timenow) < 0.4:
>>>     print(time.time() - timenow)
>>>     time.sleep(0.001)
0.0
0.0019998550415
0.00300002098083
0.00399994850159
0.00499987602234
0.00599980354309
0.00799989700317
0.00899982452393
0.00999999046326

答案 1 :(得分:-2)

有时,当您使用&#39;!=&#39;时,它无法正确检查而不是少于。如果您使用&#39;&#39;,即使数字超过400,也会停止评估。