#python #python-turtle
Вопрос:
Я пытаюсь в качестве личного проекта создать игру на python с использованием turtle, но столкнулся с проблемой
def player_headto(x, y):
player.left(player.towards(x, y) - player.heading())
player.goto(x, y)
window.onscreenclick(player_headto)
def currency(x, y):
c_amount = 0
if x >= 100 and x <= 150:
if y >= 50 and y <= 100:
c_amount = c_amount 1
print(str(c_amount))
else:
print(str(c_amount))
else:
print(str(c_amount))
window.onscreenclick(currency)
Я не могу, чтобы при каждом щелчке одновременно происходило несколько вещей. Я перепробовал кучу, но он всегда либо возвращает ошибку, либо делает только одну.
Комментарии:
1. Попробуйте определить один метод handle_click (), который делает все, что вы хотите, когда происходит щелчок. Вместо привязки нескольких различных методов к onscreenclick
Ответ №1:
используйте многопоточность, что делает процессы многозадачными
Ответ №2:
Я не могу, чтобы при каждом щелчке одновременно происходило несколько вещей.
Вам не нужна резьба или ни один клик, который делает все. Что вам нужно, так это плохо документированный add
аргумент в onscreenclick()
пользу aka screen.onclick()
. Вот простой пример:
from turtle import Screen, Turtle
def draw_circle(x, y):
turtle.circle(100)
def change_background(x, y):
screen.bgcolor('red')
turtle = Turtle()
screen = Screen()
screen.onclick(change_background)
screen.onclick(draw_circle, add=True)
screen.mainloop()
Конечно, и то, и другое произойдет не сразу, а скорее последовательно. Это то, что вы получите с помощью одного клика, который делает все, или даже нарезает резьбу, поскольку все графические операции черепахи должны обрабатываться основным потоком.