import turtle
from random import randint
from random import choice
window = turtle.Screen()
#border - граница
border = turtle.Turtle()
border.speed(0)
border.up()
border.goto(200,200)
border.down()
border.color('blue')
border.pensize(5)
border.hideturtle()
border.goto(200,-200)
border.goto(-200,-200)
border.goto(-200,200)
border.goto(200,200)
bub_id = []
bub_spd = []
def create_ball():
ball = turtle.Turtle()
ball.hideturtle()
ball.color(choice(['green','yellow','blue']))
ball.shape('circle')
ball.up()
y_range = randint(-185,185)
x_range = randint(-185,185)
ball.goto(x_range,y_range)
ball.showturtle()
dx = randint(2,3)
dy = randint(2,3)
bub_spd.append([dx,dy])
bub_id.append(ball)
n = 0
while True:
n+=1
if n < 2:
create_ball()
for i in range(len(bub_id)):
a = bub_id[i].position()
x= a[0]
y= a[1]
dx = bub_spd[i][0]
dy = bub_spd[i][1]
if (x + dx) > 195 or (x+dx) < -195:
dx = -dx
if (y + dy) > 195 or (y + dy) < -195:
dy = -dy
bub_id[i].goto(x+dx,y+dy)
window.mainloop()
Почему-то первый шарик,вместо того чтобы при столкновении поменять направление, начинает вести себя неадекватно. И в итоге "притягивается" в угол
вот код,который показывает идею игры
import turtle
window = turtle.Screen()
border = turtle.Pen()
border.speed(0)
border.up()
border.hideturtle()
border.pensize(5)
border.color(randomcolor())
border.goto(300,300)
border.down()
border.goto(300,-300)
border.goto(-300,-300)
border.goto(-300,300)
border.goto(300,300)
ball = turtle.Pen()
ball.shape("circle")
ball.up()
dx = 2
dy = 23
while True:
x,y = ball.position()
if x+dx>=300 or x+dx<=-300:
dx = -dx
if y+dy>=300 or y+dy<=-300:
dy = -dy
ball.goto(x+dx,y+dy)
window.mainloop()