所以基本上我有一个动画为1个对象的函数,我希望能够有更多独立的对象,但是当我再次调用该函数时,它只覆盖旧的对象,我希望可以有多个对象(我想要rain(
import random
import tkinter
canvas = tkinter.Canvas(width=1000, height=600, bg="white")
canvas.pack()
x = 0
y = 0
def idk():
idk2()
canvas.after(2000,idk2)
def idk2():
global x
x = random.randint(0,1000)
idk3()
def idk3():
global y
y = y+10
canvas.delete('idk3')
canvas.create_rectangle(x-2,y-10,x+2,y+10,tag="idk3")
if y<600:
canvas.after(50, idk3)
idk()
如果你想下很多雨,你需要在雨滴到达地面之前把它们保存起来。
下面是一个例子:
raindrops = {}
def raining():
# update existing rain drops
for rd in list(raindrops):
if raindrops[rd] < 600:
# keep rain falling
raindrops[rd] += 10
canvas.move(rd, 0, 10)
else:
# rain drop reaches the ground, remove it
canvas.delete(rd)
del raindrops[rd]
# create new rain drop at random x
x = random.randint(0, 1000)
rd = canvas.create_line(x, 0, x, 20)
raindrops[rd] = 0 # save the y of rain drop
canvas.after(20, raining)
只需从代码中删除这一行:
canvas.delete('idk3')
当然,再次调用idk((函数