Компьютерные игры очень популярное развлечение, как для детей, так и для взрослых. Существует большое разнообразие приложений. Это может быть платформенная игра, различные квесты, аркады и т.д. Каждый выбирает по своему усмотрению. Игры могут быть не только в качестве развлечения, но и в качестве развития.
В данной статье рассматривается процесс создания логической игры «Лабиринт» с использованием программной среды Dev-C++ на языке программирования С++.
Проектирование
Перед началом создания игры, нам необходимо решить с какой целью мы будем это делать: для развлечения или для развития. В зависимости от этого и будем отталкиваться, какой жанр, графику и на какой возраст она будет рассчитываться. Нужно тщательно разобраться во всех деталях, чтобы игра была популярна и востребована.
Жанр
В самом начале создания игры можно сразу выбрать сюжет, стиль, особенности игры и остальные возможности приложения, а можно и по ходу разработки додумывать детали игры. Но необходимо точно определить направление развития нашего проекта, т.е. жанр. Это главный компонент при создании нашей игры.
Просматриваем различные варианты жанров, и выбираем необходимый нам игровые геймплейные элементы (подробнее о таблице жанров можно узнать в статье «Жанры компьютерных игр»). Какие-то элементы подарят нам высокую популярность среди игроков (уничтожение, соревнование, герой, забота), какие-то – преданных, но придирчивых фанатов (тактика, контроль, уклонение), а какие-то – отсутствие серьезных конкурентов (обучение, логика, путешествие, экономика).
Жанр, который мы выбрали можно корректировать и изменять по ходу работы, но его сущность должна оставаться прежней. Жанр – это основа создания приложения, ведь если мы захотим выбрать другой жанр, то изменить наши наработки будет сложнее, чем начать создание нового проекта.
Средство, программный код
После того, как определились с целью, нам необходимо выбрать программу, в которой и будем работать. Существует множество платформ и ресурсов для создания приложений. А так же большое разнообразие языков программирования. В нашем случае игра будет создаваться в такой программе, как Dev-C++ на языке C++. И тут мы сталкиваемся с необычным феноменом компьютерного мира – и материалом, и инструментом игрового проекта является одна и та же сущность – программный код. Код – это как строительный материал. В нем и осуществляется все действия игрового момента.
Для написания программного кода, нам необходимо выбрать язык программирования. В нашем случае это будет C++. Все действия и графика будут описаны в коде. Для этого необходимо знать основные команды. Начало работы будет выглядеть примерно так:
#include
#include
#include
#include
const int Width = 40;
const int Height = 40;
const int CellSize = 25;
int Cell[Width][Height]={
…
void DrawField() //Функция, рисующая поле
main() {
initwindow(1000,750);
DrawField();
getch();
closegraph();
}
Творчество
Творчеству отведем отдельный параграф. Ведь создание игры – творческий процесс. Придумывать название, графику, правила полностью в нашем распоряжении.
2.1 Правила
Игра будет простая и рассчитана на детей малого возраста. Всем известна игра «Лабиринт» и ее правила, которые очень просты. Цель - как можно скорее найти выход из лабиринта наиболее коротким путем, затратив на это небольшое количество времени.
Графика
Чтобы проходить было интереснее, создается оригинальное оформление и звуковое сопровождение. На языке программирования это выглядит таким образом:
int Cell[Width][Height]={
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,},
{1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,},
{1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1,},
{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1,},
{1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,},
{1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1,},
{1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1,},
{1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1,},
{1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,},
{1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1,},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1,},
{1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,},
…
}
void DrawField() //Функция, рисующая поле
{
setcolor(WHITE); //Устанавливаем цвет линий
rectangle(0, 0, 30 * Width, 30 * Height); //Внешняя граница поля
for (int i = 1; i < (Width - 1); i++)
//Рисуем вертикальные линии сетки
line(i * CellSize, 1, i * CellSize, Height * CellSize);
for (int i = 1; i