В мире программирования создание игр — это не только увлекательное занятие, но и отличный способ улучшить свои навыки. В этой статье мы рассмотрим, как создать простую игру на Python, используя библиотеку Pygame. Наша игра будет называться "Убегай от врагов", где игрок управляет квадратом и должен избегать столкновений с движущимися врагами.
▎Установка Pygame
Первым шагом в создании игры является установка необходимых библиотек. Для нашей игры мы будем использовать Pygame — популярную библиотеку для разработки игр на Python. Чтобы установить Pygame, выполните следующую команду в терминале:
pip install pygame
▎Основные компоненты игры
Перед тем как перейти к коду, давайте определим основные компоненты нашей игры:
1. Игрок: Это квадрат, которым управляет игрок.
2. Враги: Красные квадраты, которые движутся вниз по экрану.
3. Счет: Счетчик, который показывает, сколько врагов игрок успешно избегает.
▎Код игры
Теперь давайте перейдем к написанию кода. Вот полный код для нашей простой игры:
import pygame
import random
# Инициализация Pygame
pygame.init()
# Настройки экрана
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Убегай от врагов")
# Цвета
WHITE = (255, 255, 255)
BLUE = (0, 0, 255)
RED = (255, 0, 0)
# Игрок
player_size = 50
player_pos = [WIDTH // 2, HEIGHT - 2 * player_size]
# Враги
enemy_size = 50
enemy_pos = [random.randint(0, WIDTH - enemy_size), 0]
enemy_list = [enemy_pos]
# Скорость врагов
enemy_speed = 10
# Игровые параметры
score = 0
game_over = False
# Шрифт
font = pygame.font.SysFont("monospace", 35)
# Главный игровой цикл
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
# Управление игроком
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_pos[0] > 0:
player_pos[0] -= 10
if keys[pygame.K_RIGHT] and player_pos[0] < WIDTH - player_size:
player_pos[0] += 10
# Обновление позиции врагов
if enemy_pos[1] >= 0 and enemy_pos[1] < HEIGHT:
enemy_pos[1] += enemy_speed
else:
enemy_pos[0] = random.randint(0, WIDTH - enemy_size)
enemy_pos[1] = 0
score += 1
# Проверка на столкновение
if (player_pos[0] < enemy_pos[0] < player_pos[0] + player_size or player_pos[0] < enemy_pos[0] + enemy_size < player_pos[0] + player_size) and \
(player_pos[1] < enemy_pos[1] < player_pos[1] + player_size or player_pos[1] < enemy_pos[1] + enemy_size < player_pos[1] + player_size):
game_over = True
# Отрисовка объектов на экране
screen.fill(WHITE)
pygame.draw.rect(screen, BLUE, (player_pos[0], player_pos[1], player_size, player_size))
pygame.draw.rect(screen, RED, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size))
# Отображение счета
score_text = font.render(f"Score: {score}", True, (0, 0, 0))
screen.blit(score_text, (10, 10))
pygame.display.update()
# Завершение Pygame
pygame.quit()
▎Объяснение кода
▎Инициализация Pygame
В начале кода мы инициализируем Pygame и создаем экран с заданной шириной и высотой. Также определяем основные цвета для нашего игрока и врагов.
▎Игрок и враги
Мы задаем размеры для игрока и врагов и устанавливаем начальные позиции. Враги будут появляться в случайных местах в верхней части экрана.
▎Игровой цикл
Основная логика игры находится в бесконечном цикле while. В этом цикле мы обрабатываем события (например, закрытие окна), управляем движением игрока с помощью клавиш стрелок и обновляем позицию врагов. Если враг выходит за пределы экрана, мы перемещаем его обратно в верхнюю часть и увеличиваем счет.
▎Проверка на столкновение
Мы проверяем столкновение между игроком и врагом. Если они пересекаются, игра заканчивается.
▎Отрисовка объектов
В конце каждого цикла мы очищаем экран и рисуем игрока и врага, а также отображаем текущий счет.
▎Запуск игры
Чтобы запустить игру:
1. Сохраните код в файл с расширением .py, например run_away_game.py.
2. Запустите игру с помощью команды:
python run_away_game.py
Теперь вы можете управлять синим квадратом с помощью стрелок влево и вправо и избегать столкновения с красным квадратом!
▎Заключение
Создание игр на Python с использованием Pygame — это отличный способ развивать свои навыки программирования и креативности. В этой статье мы создали простую игру "Убегай от врагов". Вы можете расширить ее, добавив больше уровней сложности, различных врагов или улучшив графику. Надеюсь, вам было интересно!