Python, черепаха не появится и не будет реагировать на управление с клавиатуры - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь создать программу на Python, в которой игрок управляет черепахой (из модуля 'черепаха'), чтобы достичь цели, избегая препятствий на этом пути.

Код препятствия иРисунок цели работает нормально, однако по какой-то причине черепаха игрока не видна и не будет реагировать на команды клавиатуры.Я решил не включать весь код и вместо этого буду включать только соответствующие разделы.Ниже приведен код для управления плеером.Плеер уже настроен как черепаха, а экран настроен на screen = turtle.Screen().Я не получаю ошибок, когда я пытаюсь запустить его.Я оставлю ссылку на код моего github , если кто-нибудь захочет взглянуть на него.

speed = 1


def travel():
    player.forward(speed)
    screen.ontimer(travel, 10)


player.pendown()
player.forward(10)
screen.onkey(lambda: player.setheading(90), 'Up')
screen.onkey(lambda: player.setheading(180), 'Left')
screen.onkey(lambda: player.setheading(0), 'Right')
screen.onkey(lambda: player.setheading(270), 'Down')

screen.listen()

travel()

screen.mainloop()

1 Ответ

0 голосов
/ 03 июня 2018

После завершения ваш пример работает нормально:

from turtle import Turtle, Screen

def travel():
    player.forward(1)
    screen.ontimer(travel, 10)

screen = Screen()
player = Turtle()

screen.onkey(lambda: player.setheading(0), 'Right')
screen.onkey(lambda: player.setheading(90), 'Up')
screen.onkey(lambda: player.setheading(180), 'Left')
screen.onkey(lambda: player.setheading(270), 'Down')

screen.listen()

travel()

screen.mainloop()

Что касается вашей более крупной программы, я рекомендую вам закомментировать следующие строки:

goal._tracer(0)
...
obstacle._tracer(0)

И ваши playerдолжна появиться черепахаЯ предлагаю вам не связываться с tracer(), пока вы не завершите основную часть своей программы и не поймете, что делает tracer().

...