Как сделать движение нарисованного квадрата в python с помощью библиотеки turtle

Рейтинг: 1Ответов: 1Опубликовано: 11.01.2023

Прошу помощи, хочу сделать движение квадрата в python с помощью библиотеки turtle. Задумка такая: рисуем квадрат с помощью черепахи, делаем ему цвет, а дальше проблема, надо чтобы этот квадрат уходил вправо за пределы экрана, а появлялся слева и опять двигался вправо, в целом движение по кругу. Прикрепляю то, что "получилось" сделать.

import turtle

MyTur = turtle.Turtle()
MyTur.hideturtle()
MyScreen = turtle.Screen()
MyScreen.bgcolor("white")
MyScreen.screensize(500, 500)
MyScreen.tracer(0)

def square():
    MyTur.begin_fill()
    MyTur.fillcolor("blue")
    for i in range(4):
        MyTur.forward(50)
        MyTur.right(90)
    MyTur.end_fill()

MyTur.penup()
x = -350
MyTur.goto(x, 0)
MyTur.pendown()

while True:
    MyTur.clear()
    square()

    MyScreen.update()
    MyTur.forward(0.05)

Ответы

▲ 0Принят

После того, как передвинули квадрат, нужно проверить вышли ли мы за правую границу (x > 500): если вышли, то x = -500

import turtle

MyTur = turtle.Turtle()
MyTur.hideturtle()
MyScreen = turtle.Screen()
MyScreen.bgcolor("white")
MyScreen.screensize(500, 500)
MyScreen.tracer(0)

def square():
    MyTur.begin_fill()
    MyTur.fillcolor("blue")
    for i in range(4):
        MyTur.forward(50)
        MyTur.right(90)
    MyTur.end_fill()

MyTur.penup()
x = -350
MyTur.goto(x, 0)
MyTur.pendown()

while True:
    MyTur.clear()
    square()

    MyScreen.update()
    MyTur.forward(0.05)  # Сдвинули квадрат

    # Проверяем выходит ли за границу новая координата x
    if MyTur.pos()[0] > 500:  # Если вышли, то передвигаем квадрат на -500
        MyTur.penup()
        x = -500
        MyTur.goto(x, 0)
        MyTur.pendown()

По поводу MyTur.pos()[0]:

MyTur.pos() возвращает кортеж из двух элементов: например, (-349.90,-0.00). Первое значение - x, второе - y. Нам нужен x, отчет в питоне начинается с 0, поэтому x = MyTur.pos()[0]