Я пытаюсь заставить черепаху r
изменить цвет на красный, когда черепаха b
сталкивается с ней. По какой-то причине он меняет цвет перед визуальным столкновением. Я не уверен, что делать, пожалуйста, помогите.
Я запускаю этот код на trinket.io
. Вам придется импортировать черепаху и математику, чтобы запустить ее.
blue = {'turtle':turtle.Turtle(),'radius': 20,'x':100,'y': 5,'speed': 5}
ran = {'turtle':turtle.Turtle(),'radius': 20,'x': 100,'y':0}
game = {"status": "new", "mode": "play"}
b = blue['turtle']
b.penup()
b.shape('circle')
r = ran['turtle']
r.penup()
r.setx(ran['x'])
r.sety(ran['y'])
r.shape('circle')
screen = b.getscreen()
def up():
current_y = b.ycor()
new_y = current_y + blue['speed']
b.sety(new_y)
def down():
current_y = b.ycor()
new_y = current_y - blue['speed']
b.sety(new_y)
def left():
current_y = b.xcor()
new_y = current_y - blue['speed']
b.setx(new_y)
def right():
current_y = b.xcor()
new_y = current_y + blue['speed']
b.setx(new_y)
def coll(obj_1,obj_2):
turt_1 = obj_1['turtle']
turt_2 = obj_2['turtle']
dx = turt_1.xcor() - turt_2.xcor()
dy = turt_1.ycor() - turt_2.ycor()
distance = math.sqrt(dx**2 + dy**2)
if distance <= obj_1['radius'] + obj_2['radius']:
turt_2.color('red')
else:
turt_2.color('black')
screen.onkey(up,'Up')
screen.onkey(down,'down')
screen.onkey(left,'left')
screen.onkey(right,'right')
screen.listen()
# continue until game is over
while game["status"] != "over":
# if not paused
if (game["mode"] != "paused"):
coll(blue,ran)