Введение
Разработка компьютерных игр на сегодняшний день является одной из самых динамично развивающихся областей в сфере информационных технологий. С каждым годом растет интерес к играм, как со стороны пользователей, так и со стороны разработчиков. В условиях современного мира, где развлечения и досуг играют важную роль в жизни человека, создание качественных и увлекательных игр становится особенно актуальным. В этом контексте игра «Бузоед» представляет собой не только интересное развлечение, но и инструмент для развития логического мышления, стратегического планирования и быстрого реагирования у игроков.
Аннотация
Работа представляет собой разработку игры "Буузоед" с использованием языка программирования Python. Игра будет представлять собой аркадный тип, где игрок управляет персонажем, который должен съедать буузу и избегать различных препятствий. Основная цель игры — набрать максимальное количество очков, съедая буузы и избегая поражений.
Актуальность данной работы обусловлена недостатком качественных и занимательных игр, разработанных на языке программирования Python, на бурятскую тематику.
Целью данной работы является изучение основ программирования на языке Python и создание собственной компьютерной игры «Бузоед».
Задачи исследования:
Изучить основы программирования на языке Python;
Разработать концепцию игры «Бузоед»;
Создать игру «Бузоед» с использованием языка программирования Python;
Провести тестирование игры и собрать обратную связь от пользователей.
Методы исследования:
Изучение литературы по программированию на языке Python;
Анализ существующих игр и их механик;
Программирование игры «Бузоед» на языке Python;
Тестирование игры на различных устройствах и сбор обратной связи от пользователей.
Результаты исследования:
По итогам исследования мы планируем создать собственную компьютерную игру «Бузоед», которая будет доступна для игры на различных устройствах. Мы также надеемся получить обратную связь от пользователей, чтобы улучшить игру и сделать ее более интересной и увлекательной.
Глава I. Что такое Python.
Что такое Python.
Python — это высокоуровневый язык программирования, отличающийся эффективностью, простотой и универсальностью использования. Он широко применяется в разработке веб-приложений и прикладного программного обеспечения, а также в машинном обучении и обработке больших данных. За счет простого и интуитивно понятного синтаксиса является одним из распространенных языков.
Описание игры.
Название игры: Буузоед
Тип игры: Аркадная, с элементами избегания и сбора объектов.
Цель игры: Игрок управляет персонажем, который должен собирать буузы и избегать препятствий. За каждый собранный объект игрок получает очки, за каждое поражение — теряет жизни.
Управление: Клавиши стрелок для движения персонажа по экрану.
1.3 Буузы
Буузы — это традиционное блюдо бурятского и монгольского народов, означающее «мясо, завёрнутое в тесто». На русском языке его называют позы.
Считается, что буузы — один из вариантов китайского блюда баоцзы, но, в отличие от него, начинка в буузах — исключительно мясная. Блюдо также родственно грузинским хинкали и тюркским мантам.
Буузы готовят на пару в специальных кастрюлях — «позницах». В качестве основных компонентов начинка содержит рублёное мясо и репчатый лук.
Буузы занимают важное место в национальной культуре бурятов: их подают на каждом празднике и даже устраивают конкурсы на скоростное поедание.
Глава II. Практическая часть.
2.1 Этапы разработки.
Подготовка среды разработки
Для разработки игры мы будем использовать Python и библиотеку Pygame, которая предоставляет удобные средства для работы с графикой, звуком и обработкой пользовательского ввода.
Создание основных элементов игры
В этой игре будут несколько ключевых элементов:
Игровое поле: Пространство, в котором происходит действие.
Персонаж игрока: это объект, который будет управляться пользователем и двигаться по экрану.
Буузы: Объекты, которые нужно собирать для получения очков.
Препятствия или враги: Объекты, которых следует избегать, чтобы не потерять жизни.
Очки и жизнь: Система отслеживания очков и оставшихся жизней.
Реализация игрового процесса
Примерный процесс игры:
Игрок управляет персонажем с помощью клавиш стрелок.
Буузы появляются случайным образом на экране.
Игрок должен поймать как можно больше буузов, двигаясь по экрану.
При столкновении с врагами или препятствиями игрок теряет жизнь.
Игра заканчивается, когда у игрока заканчиваются жизни или он решит выйти.
Структурапрограммы
import pygame
import random
# Инициализация Pygame
pygame.init()
# Размеры окна
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
# Цвета
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
# Скоростьигры
FPS = 60
# Классыигры
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((50, 50))
self.image.fill(GREEN)
self.rect = self.image.get_rect()
self.rect.center = (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)
self.speed = 5
def update(self, keys):
if keys[pygame.K_LEFT]:
self.rect.x -= self.speed
if keys[pygame.K_RIGHT]:
self.rect.x += self.speed
if keys[pygame.K_UP]:
self.rect.y -= self.speed
if keys[pygame.K_DOWN]:
self.rect.y += self.speed
# Ограничиваем движение в пределах экрана
if self.rect.left < 0:
self.rect.left = 0
if self.rect.right > SCREEN_WIDTH:
self.rect.right = SCREEN_WIDTH
if self.rect.top < 0:
self.rect.top = 0
if self.rect.bottom > SCREEN_HEIGHT:
self.rect.bottom = SCREEN_HEIGHT
class Buuz(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((30, 30))
self.image.fill(RED)
self.rect = self.image.get_rect()
self.rect.x = random.randint(0, SCREEN_WIDTH - 30)
self.rect.y = random.randint(0, SCREEN_HEIGHT - 30)
def update(self):
pass
class Enemy(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((30, 30))
self.image.fill(WHITE)
self.rect = self.image.get_rect()
self.rect.x = random.randint(0, SCREEN_WIDTH - 30)
self.rect.y = random.randint(0, SCREEN_HEIGHT - 30)
self.speed = random.randint(3, 6)
def update(self):
self.rect.y += self.speed
if self.rect.top > SCREEN_HEIGHT:
self.rect.bottom = 0
self.rect.x = random.randint(0, SCREEN_WIDTH - 30)
# Инициализацияэкрана
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Буузоед")
# Группыспрайтов
all_sprites = pygame.sprite.Group()
buuz_group = pygame.sprite.Group()
enemy_group = pygame.sprite.Group()
# Создание персонажа игрока
player = Player()
all_sprites.add(player)
# Созданиебууз
for _ in range(5):
buuz = Buuz()
all_sprites.add(buuz)
buuz_group.add(buuz)
# Созданиеврагов
for _ in range(3):
enemy = Enemy()
all_sprites.add(enemy)
enemy_group.add(enemy)
# Счётижизни
score = 0
lives = 3
font = pygame.font.SysFont('Arial', 30)
# Главныйигровойцикл
running = True
clock = pygame.time.Clock()
while running:
# Обработкасобытий
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Получениенажатыхклавиш
keys = pygame.key.get_pressed()
# Обновление всех спрайтов
all_sprites.update(keys)
# Проверка на столкновения
buuz_collisions = pygame.sprite.spritecollide(player, buuz_group, True)
for buuz in buuz_collisions:
score += 1 # Увеличениесчёта
enemy_collisions = pygame.sprite.spritecollide(player, enemy_group, False)
if enemy_collisions:
lives -= 1 # Потеряжизни
if lives <= 0:
running = False # Конец игры, если жизни закончились
# Отображение
screen.fill(BLACK)
all_sprites.draw(screen)
# Отображениесчётаижизней
score_text = font.render(f"Score: {score}", True, WHITE)
lives_text = font.render(f"Lives: {lives}", True, WHITE)
screen.blit(score_text, (10, 10))
screen.blit(lives_text, (SCREEN_WIDTH - 120, 10))
# Обновлениеэкрана
pygame.display.flip()
# Ограничение кадров
clock.tick(FPS)
# Завершение игры
pygame.quit()
Описание кода
Инициализация Pygame: Мы начинаем с инициализации библиотеки Pygame, которая предоставляет нам все необходимые инструменты для работы с графикой и звуками.
Классы объектов:
Player: Класс игрока, который управляется с помощью клавиш стрелок.
Buuz: Класс объектов (буузов), которые игрок должен собирать.
Enemy: Класс врагов, которые двигаются по экрану и могут столкнуться с игроком.
Основной цикл игры:
Игровой цикл работает до тех пор, пока игрок не закроет окно игры или не потеряет все жизни.
Внутри цикла происходит обработка событий (например, нажатия клавиш), обновление состояния игры (движение объектов) и отрисовка графики.
Система очков и жизней:
За каждый съеденный бууз увеличивается счёт.
При столкновении с врагами игрок теряет жизнь. Когда жизни заканчиваются, игра заканчивается.
Заключение
Разработка игр на языке программирования Python может быть увлекательным и интересным занятием не только для профессиональных программистов, но и для школьников. Эта работа представляет собой базовую реализацию игры с использованием Python. В будущем можно улучшить игру, добавив новые уровни, более сложных врагов, улучшенную графику и звуковые эффекты.
Список используемых источников:
https://www.python.org/ - Официальный сайт Python;
https://multiurok.ru/blog/buuzy-natsionalnoe-buriatskoe-bliudo.html - буузы
Приложение 1
Приложение 2