Если вы начинающий программист и хотите попробовать создать свою собственную игру на каком либо языке программирования, то, думаю данная статья сможет вам помочь.
Далее будет разобран план написания любой игры, на любом языке программирования. В качестве примера мною был выбран язык 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. Настройки окна
- Далее необходимо указать размеры окна в пикселях. В качестве примера, на языке Python, в библиотеке pygame, это делается следующим образом:
screen = pygame.display.set_mode((1200,800)) , то есть окно становится размером 1200 пикселей в длину и 800 в ширину.
- Можно указать название игры в верхней части экрана, в той же библиотеке делается это следующим образом:
pygame.display.set_caption("Form")
4. Классы, внутри которых функции
В языке Python сущестуют классы (class), способные МНОГОКРАТНО выполнять определенные функции. В каждом классе, в будущем необходимо будет прописать функции, в которых описано каждое действие определенного персонажа или предмета в игре. Чтобы было более понятно, напишу на примере. Рассмотрим простую игру, где снизу экрана перемещается летающий кораблик, а сверху летят враги в которых необходимо стрелять и зарабатывать очки.
При создании класса для пришельца необходимо создать функции отвечающие за их передвижение влево, вправо и вниз, придумать и реализовать происходящее при соприкасновении пули от корабля и пришельца, при достижении пришельцем игрока и другие разные моменты. Все эти функции (def) прописываются в одном большом классе пришельцев. Фишка использования классов заключается, в том, что код становится более читаемым и понятным для самого создателя, а так же в том, что уходит необходимость каждый раз прописывать одни и те же действия, ведь будет достаточно использовать класс. Советую делать классы на все объекты, которые двигаются или участвуют в игре как либо иначе. К примеру для прошлой игры с кораблем и врагами, необходимо создать класс для самого корабля, пришельца, пули и статистики в игре (текущий счет, лучший счет, количество жизней).
5. Игровой цикл
Написать все действия, которые происходят в игре это, конечно, хорошо, но если не создать игровой цикл, то какой бы хороший не был код, смысла в нем нет, ведь игрок не увидит ничего от слова совсем. По сути игровой цикл - это бесконечный цикл (while True: ), в котором каждый раз отрисовываются нужные предметы на экране (вызываются нужные функции в каждом классе), до тех пор пока игра не будет закрыта.
6. закрытие окна - завершение игры
Стоит задать кнопку закрытия игры, ведь если этого не сделать, то нажимая на тот самый заветный красный крестик игра как бы закроется, но с ошибкой. Для реализации нормального закрытия игры используется следующий код (вставляется в игровой цикл):
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
Данный код используется при написании игры на библиотеки pygame и с помощью встроенной библиотеки sys
На этом наш шаблон готов, далее нужно придумывать смысл игры, обдумывать каждый шаг и творить.
Надеюсь вы подчеркнули что-то для себя в данной статье, буду рад подписке, лайкам и комментариям. Удачи!