tkinter不需要的函数覆盖



所以基本上我有一个动画为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((函数

最新更新