Как сломать уже установленную функцию с помощью таймера в Turtle GraphicPython

Программы на Python
Anonymous
Как сломать уже установленную функцию с помощью таймера в Turtle Graphic

Сообщение Anonymous »

Я создаю игру-змейку, в которой еда телепортируется по карте. Я использую ontimer с рекурсией в конце функции, чтобы имитировать пребывание крота в определенной позиции в течение некоторого времени. Я также заставляю крота двигаться, если его съела черепаха. Но тогда телепортация крота вызывается два раза из-за уже установленной функции ontimer.

Код: Выделить всё

def mole_teleport(is_loop=True):
rand_x = random.randint(-250, 250)
rand_y = random.randint(-250, 250)
mole.teleport(rand_x, rand_y)
if is_loop == False:
return
else:
screen.ontimer(mole_teleport, 3000)

tim = Player() #user_turtle
mole = Turtle("circle")

mole_teleport()

screen = Screen()
screen.setup(600, 600)

screen.listen()
screen.onkey(tim.turn_left, "Left")
screen.onkey(tim.turn_right, "Right")

game_is_on = True
while game_is_on:
tim.move()
if mole.distance(tim) < 20:
mole_teleport(is_loop=False)
my-ideal-diagram
Я пытался заблокировать рекурсию с помощью аргумента. Я ожидаю, что таймер телепортации обновится с самого начала после того, как черепаха съела крота и вызовет mole_teleportation()

Подробнее здесь: https://stackoverflow.com/questions/785 ... le-graphic

Вернуться в «Python»