Загрузка данных
import turtle
# Функция рисования машинки
def draw_car(t, size, color):
t.fillcolor(color)
t.begin_fill()
# Кузов машинки (прямоугольник)
for _ in range(2):
t.forward(size * 1.5)
t.left(90)
t.forward(size)
t.left(90)
t.end_fill()
# Кабина (верхняя часть)
t.fillcolor("lightblue")
t.begin_fill()
t.left(90)
t.forward(size * 0.6)
t.right(90)
t.forward(size * 0.8)
t.right(90)
t.forward(size * 0.6)
t.right(90)
t.forward(size * 0.8)
t.end_fill()
# Колеса
t.penup()
t.goto(t.xcor() + size * 0.2, t.ycor() - size * 0.4)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.circle(size * 0.15)
t.end_fill()
t.penup()
t.goto(t.xcor() + size * 0.8, t.ycor())
t.pendown()
t.begin_fill()
t.circle(size * 0.15)
t.end_fill()
# Функция рисования поезда
def draw_train(t, size, color):
t.fillcolor(color)
t.begin_fill()
# Основной вагон
for _ in range(2):
t.forward(size * 2)
t.left(90)
t.forward(size)
t.left(90)
t.end_fill()
# Крыша
t.fillcolor("darkred")
t.begin_fill()
t.left(90)
t.forward(size * 0.3)
t.right(90)
t.forward(size * 2)
t.right(90)
t.forward(size * 0.3)
t.end_fill()
# Окна
t.penup()
t.goto(t.xcor() - size * 1.5, t.ycor() + size * 0.3)
t.pendown()
t.fillcolor("yellow")
for _ in range(3): # 3 окна
t.begin_fill()
for _ in range(2):
t.forward(size * 0.4)
t.left(90)
t.forward(size * 0.3)
t.left(90)
t.end_fill()
t.penup()
t.forward(size * 0.5)
t.pendown()
# Колеса
t.penup()
t.goto(t.xcor() - size * 1.3, t.ycor() - size * 0.5)
t.pendown()
t.fillcolor("black")
for _ in range(2):
t.begin_fill()
t.circle(size * 0.12)
t.end_fill()
t.penup()
t.forward(size * 1.2)
t.pendown()
# Функция для создания разных объектов
def moving_object(t, object_type, size, color):
if object_type == "car":
draw_car(t, size, color)
elif object_type == "train":
draw_train(t, size, color)
else:
# Обычная фигура для совместимости
t.fillcolor(color)
t.begin_fill()
for _ in range(4):
t.forward(size)
t.left(90)
t.end_fill()
# Основная программа
if __name__ == "__main__":
screen = turtle.Screen()
screen.setup(800, 600)
screen.bgcolor("lightblue") # Небо
screen.tracer(0)
# Рисуем землю
ground = turtle.Turtle()
ground.speed(0)
ground.penup()
ground.goto(-400, -50)
ground.pendown()
ground.fillcolor("gray")
ground.begin_fill()
for _ in range(2):
ground.forward(800)
ground.left(90)
ground.forward(20)
ground.left(90)
ground.end_fill()
ground.hideturtle()
# Создаем движущийся объект
move = turtle.Turtle()
move.speed(0)
move.width(2)
move.hideturtle()
move.penup()
move.goto(-350, -30) # Над землей
# Параметры для переключения
current_object = "car" # "car" или "train"
current_color = "red"
current_size = 30
speed_step = 3
# Бесконечный цикл движения
while True:
move.clear()
moving_object(move, current_object, current_size, current_color)
screen.update()
move.forward(speed_step)
# Если объект уехал, возвращаем его
if move.xcor() > 350:
move.goto(-350, -30)