from tkinter import *
def move():
global x1, y1, dx, dy, flag, n
x1, y1 = x1 + dx, y1 + dy
if x1 > 360:
n = 0
x1, dx, dy = 360, 0, 15
if y1 > 360:
n = 1
y1, dx, dy = 360, -15, 0
if x1 < 10:
x1, dx, dy = 10, 0, -15
n = 2
if y1 < 10:
y1, dx, dy = 10, 15, 0
n = 3
can1.coords(oval1, x1, y1, x1 + 30, y1 + 30)
if flag > 0:
abl1.after(50, move)
def stop():
global flag
flag = 0
def start():
global flag
if flag == 0:
flag = 1
move()
###
x1, y1 = 10, 10
dx, dy = 15, 0
color = [["white"], ["red"], ["green"], ["blue"]]
n = 0
flag = 0
###
abl1 = Tk()
abl1.title("Animációs gyakorlat Tkinter-rel")
can1 = Canvas(abl1, bg = "dark grey", height = 400, width = 400)
can1.pack(side=LEFT)
oval1 = can1.create_oval(x1, y1, x1 + 30, y1 + 30, fill = color[n])
but1 = Button(abl1, text = "Quit", command = abl1.destroy).pack(side=BOTTOM)
but2 = Button(abl1, text = "Start", command = start).pack()
but3 = Button(abl1, text = "Stop", command = stop).pack()
abl1.mainloop()
공이 사각형의 가장자리에 도달하면 색을 변경해야합니다. 이제이 색상 목록과 if와는 아무런 관계가 없으며 무엇이 잘못되었는지 알지 못합니다. 나는 많은 다른 변종을 시도했지만 어느 쪽도 일하지 않았다. 도움 주셔서 감사합니다.파이썬에서 색상을 변경하는 방법은 무엇입니까?
@req 올바른 것입니다. ;) – Jaredp37