Найти тему

Первый шаг при создании своей 2D игры

Оглавление
-2

Если вы начинающий программист и хотите попробовать создать свою собственную игру на каком либо языке программирования, то, думаю данная статья сможет вам помочь.

Далее будет разобран план написания любой игры, на любом языке программирования. В качестве примера мною был выбран язык Python.

Итак, план выглядит следующим образом:

1. Подключение библиотек
2. Цвета
3. Настройки окна
4. Классы, внутри которых функции
5. Игровой цикл
5.1 Обработка событий
5.2 Обновление
5.3 Рендеринг (отрисовка)
6. Закрытие окна - завершение игры


Далее подробнее про каждый из пунктов.

1. Подключение библиотек

В языке программирования Python существует большое количество библиотек, то есть наборов файлов, модулей, классов, функций в которых реализован какой либо свой функционал решения конкретной задачи. Из примеров могу привести библиотеки random, time, pygame, numpy, matplotlib, а так же еще очень большое множество разных библиотек, которые сильно помогают при написании кода не только для игры, но и в целом для любых задач. Данный шаг является необходимым, ведь с использованием библиотек, способных выполнять определенный функционал, становится больше времени для создания самого геймплея. Для подключения библиотеки в свой проект достаточно написать import <название библиотеки> !!!без использования кавычек!!!, к примеру import random

2. Цвета

Далее следует прописать основные цвета в формате rgb (red-green-blue). Необходимо это для того, чтобы в дальнейшем не указывать цвета в цифрах (к примеру (152,121,94)), а просто указать цвет. Делается это не сложно: <название переменной> = (0,0,0), к примеру back_ground_color = (0,0,0)

Среди частоприменяемых можно выделить:

reg = (255,0,0)

green = (0,255,0)

blue = (0,0,255)

yellow = (255,255,0)

purple = (255,0,255)

black = (0,0,0)

white = (255,255,255)

-3

3. Настройки окна

  • Далее необходимо указать размеры окна в пикселях. В качестве примера, на языке Python, в библиотеке pygame, это делается следующим образом:

screen = pygame.display.set_mode((1200,800)) , то есть окно становится размером 1200 пикселей в длину и 800 в ширину.

-4

  • Можно указать название игры в верхней части экрана, в той же библиотеке делается это следующим образом:

pygame.display.set_caption("Form")

-5

4. Классы, внутри которых функции

В языке Python сущестуют классы (class), способные МНОГОКРАТНО выполнять определенные функции. В каждом классе, в будущем необходимо будет прописать функции, в которых описано каждое действие определенного персонажа или предмета в игре. Чтобы было более понятно, напишу на примере. Рассмотрим простую игру, где снизу экрана перемещается летающий кораблик, а сверху летят враги в которых необходимо стрелять и зарабатывать очки.

Игра Space invaders
Игра Space invaders

При создании класса для пришельца необходимо создать функции отвечающие за их передвижение влево, вправо и вниз, придумать и реализовать происходящее при соприкасновении пули от корабля и пришельца, при достижении пришельцем игрока и другие разные моменты. Все эти функции (def) прописываются в одном большом классе пришельцев. Фишка использования классов заключается, в том, что код становится более читаемым и понятным для самого создателя, а так же в том, что уходит необходимость каждый раз прописывать одни и те же действия, ведь будет достаточно использовать класс. Советую делать классы на все объекты, которые двигаются или участвуют в игре как либо иначе. К примеру для прошлой игры с кораблем и врагами, необходимо создать класс для самого корабля, пришельца, пули и статистики в игре (текущий счет, лучший счет, количество жизней).

5. Игровой цикл

Написать все действия, которые происходят в игре это, конечно, хорошо, но если не создать игровой цикл, то какой бы хороший не был код, смысла в нем нет, ведь игрок не увидит ничего от слова совсем. По сути игровой цикл - это бесконечный цикл (while True: ), в котором каждый раз отрисовываются нужные предметы на экране (вызываются нужные функции в каждом классе), до тех пор пока игра не будет закрыта.

6. закрытие окна - завершение игры

Стоит задать кнопку закрытия игры, ведь если этого не сделать, то нажимая на тот самый заветный красный крестик игра как бы закроется, но с ошибкой. Для реализации нормального закрытия игры используется следующий код (вставляется в игровой цикл):

for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()

Данный код используется при написании игры на библиотеки pygame и с помощью встроенной библиотеки sys

На этом наш шаблон готов, далее нужно придумывать смысл игры, обдумывать каждый шаг и творить.

Надеюсь вы подчеркнули что-то для себя в данной статье, буду рад подписке, лайкам и комментариям. Удачи!