Я очень новичок в программировании, и я пытаюсь сделать простую анимацию, где я добавляю 10 холстов случайного размера, случайного цвета и случайной скорости к холсту.Вот код:
from tkinter import *
import random
import time
WIDTH = 900
HEIGHT = 700
tk = Tk()
canvas = Canvas(tk, width = WIDTH, height = HEIGHT)
tk.title("Drawing")
canvas.pack()
COLORS = ["white", "black", "red", "blue", "green", "yellow", "purple", "orange", "gray"]
balls = []
class Ball:
def __init__(self, color, size):
self.shape = canvas.create_oval(10, 10, size, size, fill = color)
self.xspeed = random.randrange(-11, 11)
self.yspeed = random.randrange(-11, 11)
def move(self):
canvas.move(self.shape, self.xspeed, self.yspeed)
pos = canvas.coords(self.shape)
if pos[3] >= HEIGHT or pos[1] <= 0:
self.yspeed = -self.yspeed
if pos[2] >= WIDTH or pos[0] <= 0:
self.xspeed = -self.xspeed
for i in range(10):
size = random.randrange(20, 150)
color = random.choice(COLORS)
balls.append(Ball(color, size))
while True:
for ball in balls:
ball.move()
tk.update()
time.sleep(0.01)
tk.mainloop()
Проблема в том, что шары могут перекрывать друг друга, т.е. когда шары касаются друг друга, ничего не происходит.Я хочу, чтобы шары отскакивали друг от друга, когда они касаются.Я провел несколько часов в поисках ответа и пробовал разные вещи, но, похоже, ничто не помогло.Не могли бы вы, ребята, помочь мне?