← Все вопросы
Как заставить квадрат двигаться по экрану в pygame?
6
Нарисовал квадрат, он стоит на месте. Хочу, чтобы он сам ехал вправо. Пробовал поставить x = x + 1 рядом с рисованием, но он либо стоит, либо мелькает в разных местах. Как правильно сделать движение?
1 ответ
12
✓ Принятый ответ — помог автору
Движение = меняем координату каждый кадр и каждый кадр перерисовываем. Главное — заливать фон в начале каждого кадра, иначе квадрат оставляет след.
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
clock = pygame.time.Clock()
x = 0
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
x += 3 # двигаем вправо
screen.fill((0, 0, 0)) # стираем прошлый кадр
pygame.draw.rect(screen, (0, 200, 100), (x, 200, 50, 50))
pygame.display.flip()
clock.tick(60) # 60 кадров в секунду
pygame.quit()
Если убрать screen.fill(...) — увидишь «размазанный» хвост из квадратов, потому что старые кадры не стираются. Это самая частая ошибка с движением.
Ваш ответ
Войдите, чтобы ответить на вопрос.