Игра My Tron-Like заставляет черепах случайно останавливаться - PullRequest
1 голос
/ 06 июня 2019

Когда моя игра запустилась нормально, возникли две серьезные проблемы; Я не могу заставить мою систему обнаружения столкновений работать, и обе мои черепахи случайно останавливаются! Я использую Repl.it

Я попытался переместить фрагменты кода, я попытался переработать его части в координаты, противоположные вперед / назад, и я попытался обновить мой список без таймера, но это привело к большой задержке

from turtle import Screen, Turtle
import sys
import time
fps = 2
# preGame setup
player1 = Turtle()
player1.hideturtle()
player1.up()
player1.goto(0, 350)
player1.down()
player1.right(90)
player1.color('red')
player1.speed(5)
player1.showturtle()

def r1():
    player1.left(90)

def l1():
    player1.right(90)

player2 = Turtle()
player2.hideturtle()
player2.up()
player2.goto(0, -350)
player2.down()
player2.left(90)
player2.color('blue')
player2.speed(5)
player2.showturtle()
players = player1, player2
def r2():
    player2.right(90)

def l2():
    player2.left(90)

# main game loop

def move():
    player1.forward(5)

    if not (-350 < player1.xcor() < 350 and -350 < player1.ycor() < 350):
        player1.backward(30)

    player2.forward(5)

    if not (-350 < player2.xcor() < 350 and -350 < player2.ycor() < 350):
        player2.backward(30)

    if player1.distance(player2) < 5:
        print("DON'T CRASH INTO THE OTHER PLAYER!")
        sys.exit()
    screen.ontimer(move, 5)
    L = list()
    l = list()
    l.append(player1.pos())
    L.append(player1.pos())
    while True:
     l.extend(player1.pos())
     L.extend(player2.pos())
     time.sleep(.5)
     if player1.distance(L) < 5:
       print('player 2 wins!!')
       sys.exit()
     if player2.distance(l) < 5:
       print('player 1 wins!!')
       sys.exit()
     break

screen = Screen()

screen.onkey(r1, 'd')
screen.onkey(l1, 'a')
screen.onkey(r2, 'left')
screen.onkey(l2, 'right')

screen.listen()

move()

screen.mainloop()

Я ожидаю, что обе черепахи будут двигаться бесконечно, пока один не столкнется с другим, но один всегда останавливается или оба останавливаются.

...