Я не могу узнать, как использовать функцию click
Мне нужна программа, чтобы сделать квадрат с треугольниками, но только там, где я нажимаю на экран, и я не могу понять, почему он только делает это в центре.
import turtle
import random
# create a turtle variable
t = turtle.Turtle()
screen = turtle.getscreen()
my_list = [4,3,2,1]
# function to draw the square pattern
def draw_square_pattern(x,y):
for i in my_list:
t.pencolor("blue")
t.pendown()
t.forward(100 * i/4)
t.left(90)
t.forward(100 * i/4)
t.left(90)
t.forward(100 * i/4)
t.left(90)
t.forward(100 * i/4)
t.left(90)
t.penup()
t.forward(12.5)
t.left(90)
t.forward(12.5)
t.right(90)
t.penup()
# main function
# when click do function
screen.onclick(draw_square_pattern)
Обработчик событий черепахи дает вам позицию, в которой пользователь нажал в качестве аргументов обработчику событий:
def draw_square_pattern(x,y):
но вы игнорируете их. Вы можете просто поднять перо и перейти в положение (x, y). Позвольте доработать ваш код, чтобы сделать это, и немного очистить синтаксис:
from turtle import Screen, Turtle
screen = Screen()
turtle = Turtle()
turtle.pencolor("blue")
my_list = [4, 3, 2, 1]
def draw_square_pattern(x, y):
""" function to draw the square pattern """
screen.onclick(None) # disable handler inside handler!
turtle.penup()
turtle.goto(x, y)
for i in my_list:
turtle.pendown()
for _ in range(4):
turtle.forward(100 * i/4)
turtle.left(90)
turtle.penup()
turtle.left(45)
turtle.forward(17.7)
turtle.right(45)
screen.onclick(draw_square_pattern)
screen.onclick(draw_square_pattern)
screen.mainloop()
Это не похоже на то, что вы используете x и y в своей функции, но эти координаты важны для рисования черепахи в определенном месте. Сравните координаты x и y с координатами x и y черепахи, а затем используйте эту информацию для перемещения черепахи к этой (x, y) координате. Затем продолжайте свой цикл for, как обычно.