После нескольких недель попыток я так и не нашел решения этой проблемы, при котором одна черепаха останавливается полностью, а другая - в 2–3 раза быстрее. Как я могу это исправить? Вы должны переместить их обоих немного, чтобы столкнуться с проблемой. Также это на сайте: repl.it
Я пытался переместить команду wn.listen()
, но она только переключала, какая черепаха остановилась, а какая нет. Я безуспешно пытался переключить команду forward()
на goto()
, и я пытался использовать движение, зависящее от направления (также безуспешно):
import turtle
import sys
player1 = turtle.Turtle()
player1.up()
player1.goto(0,350)
player1.right(90)
player1.down()
player2 = turtle.Turtle()
wn = turtle.Screen()
#preGame setup
player2.up()
player2.goto(0,-350)
player2.left(90)
player2.down()
player2.color("blue")
player1.color("red")
#main game loop
player1.speed(0)
player2.speed(0)
k = 0
def kr():
player1.left(90)
def kl():
player1.right(90)
wn.onkey(kr, "d")
wn.onkey(kl, "a")
def k1():
player2.right(90)
def k2():
player2.left(90)
wn.onkey(k1, "k")
wn.onkey(k2, "l")
wn.listen()
while True:
player1.forward(1)
player2.forward(1)
while player1.xcor() < (-350) or player1.xcor() > (350) or player1.ycor() > (350) or player1.ycor() < (-350):
player1.back(30)
while player2.xcor() < (-350) or player2.xcor() > (350) or player2.ycor() > (350) or player2.ycor() < (-350):
player2.back(30)
if player1.pos() == player2.pos():
print ("DONT CRASH INTO THE OTHER PLAYER")
sys.exit()
Я ожидал, что они оба будут двигаться бесконечно, но один всегда останавливается, а другой движется в 2 раза быстрее.