codeFlowType:
codeWrite
codeFlowLang:
Python
Напишите код на pygame управление движением объекта. Для управления движением ( с помощью клавиш ← и →) используются pygame.K_RIGHT (вправо) и pygame.K_LEFT (влево). Передвижение падающих шести окружностей три желтых, два красных и и один зеленый внизу по очереди возможно только до момента приземления на дно игрового поля, или на предыдущие фигуры
import pygame
import random
# Инициализация
pygame.init()
# Размеры окна
WIDTH = 800
HEIGHT = 600
# Цвета
WHITE = (255, 255, 255)
YELLOW = (255, 255, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLACK = (0, 0, 0)
# Создание окна
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Управление движением объекта")
# Параметры игры
circle_radius = 20
circle_speed = 1
falling_circles = []
# Отслеживание состояния клавиш
left_pressed = False
right_pressed = False
# Класс падающей окружности
class FallingCircle:
def __init__(self):
self.radius = circle_radius
self.x = random.randint(self.radius, WIDTH - self.radius)
self.y = -self.radius
self.color = random.choice([YELLOW, YELLOW, YELLOW, RED, RED, GREEN])
def move(self):
self.y += circle_speed
def draw(self):
pygame.draw.circle(window, self.color, (self.x, self.y), self.radius)
# Главный игровой цикл
running = True
clock = pygame.time.Clock()
while running:
# Обработка событий
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
left_pressed = True
elif event.key == pygame.K_RIGHT:
right_pressed = True
elif event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
left_pressed = False
elif event.key == pygame.K_RIGHT:
right_pressed = False
# Движение объекта
if left_pressed:
# движение влево
pass
elif right_pressed:
# движение вправо
pass
# Создание новых падающих окружностей
if len(falling_circles) < 6:
falling_circles.append(FallingCircle())
# Обновление состояния падающих окружностей
for circle in falling_circles:
circle.move()
if circle.y >= HEIGHT - circle.radius:
# Если окружность достигла дна игрового поля или предыдущих фигур
falling_circles.remove(circle)
# Отрисовка
window.fill(BLACK)
for circle in falling_circles:
circle.draw()
# Обновление экрана
pygame.display.flip()
clock.tick(60)
# Завершение программы
pygame.quit()
Код выше демонстрирует создание окна игры, управление движением объекта с помощью клавиш ← и →, а также создание и движение падающих окружностей. Каждая падающая окружность имеет случайный цвет (из трех возможных: желтый, красный, зеленый) и падает с определенной скоростью по вертикали. Падающие окружности автоматически создаются внизу игрового поля и удаляются, когда достигают дна игрового поля или предыдущих фигур.