用我的代码制作一个火箭应该是,当我点击空间时,发射自己,不幸的是,mov_r函数内部的while循环会导致很多延迟。然后将死亡的旋转沙滩球带出几分钟直到它停止并且火箭消失了。这意味着你实际上看不到火箭的移动,这不是我想要发生的事情。我希望能够看到火箭在移动。我已经尝试调整它睡觉的时间和火箭每次移动的数量,但没有一个工作。 这是代码:
from tkinter import *
import random, time
tk = Tk()
tk.wm_attributes('-topmost', 1)
canvas = Canvas(tk, width=1000, height=1000, bd=0)
canvas.pack()
def move_r(event):
if event.keysym == 'space':
global y2
global y3
a = 0
b = 1000
while a <b:
y2-=1
y3-=1
time.sleep(.1)
a+=1
x2=460
y2=940
x3=570
y3=900
r1=None
num = 0
num1= 4
tk.bind('<KeyPress-space>', move_r)
while num < num1:
background = canvas.create_rectangle(0, 0, 1000, 1000, fill = 'red')
base=canvas.create_rectangle(0, 1000, 1000, 900, fill='#86592d')
def rocket():
rocketbase=canvas.create_rectangle(x2+50, y2-50, x3-50, y3-90, fill ='blue')
rrocketfin=canvas.create_rectangle(x2+60, y2-50, x3-40, y3-20, fill ='#e69100')
lrocketfin=canvas.create_rectangle(x2+40, y2-50, x3-60, y3-20, fill ='#e69100')
mrocketfin=canvas.create_rectangle(x2+54, y2-50, x3-53, y3-20, fill ='#e69100')
lrockethead=canvas.create_rectangle(x2+45, y2-125, x3-60, y3-70, fill ='#e69100')
rrockethead=canvas.create_rectangle(x2+60, y2-125, x3-45, y3-70, fill ='#e69100')
rocket()
tk.update()
tk.mainloop()
如果有人能告诉我如何摆脱滞后请帮忙,谢谢。 另外请不要问为什么我使用x2和x3以及y2和y3这是一个很长的故事。