【发布时间】:2018-10-15 08:05:36
【问题描述】:
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()
我试图让我的对象向下移动一段时间,但我现在的代码没有显示对象向下或向上浮动的动画。
我想知道是否有正确的方法可以在一定时间内将对象或图像移动到某个位置?
【问题讨论】:
-
您的代码没有跟踪实际的挂钟时间,它只是在计数。要进行实时计时,您需要使用
time或datetime模块。 -
@martineau 但是如何将变量更改为可以放入 if 或 while 语句的特定秒数?
-
ACC938: 嗯,
time.time()以秒为单位返回当前时间,所以在初始化之后,再次调用它并从新值中减去之前的值会告诉你从它开始到现在已经过去了多少秒完毕。如果您使用的是 Python 3.3+,您可以使用time.perf_counter()执行类似的操作。 -
想想这样的事情:假设 D 是一个物体的当前位置 (x0, y0) 和它的新位置 (x1, y1) 之间的距离,你想把它从 A 点移动到点 B 在一定的秒数 T 内,那么它将采取的步数取决于更新的速度。作为一个具体的例子,假设 D 是 50 个单位,T 是 2 秒,显示更新率为每秒 10 次(即每 100 毫秒)。这样做需要以每秒 50/2 或 25 个单位的速度移动。如果每秒有 10 次更新,那么这样做需要每次更新移动 25/10 或 2.5 个单位(即该数量 20 次)。
标签: python python-3.x tkinter time