Практическая часть
Основные концепции игры:
Суть игры заключается в управлении некоторым ресурсом посредством мыши клавиатуры . Обычными ресурсами в военных стратегиях являются войска (отдельные персонажи, подразделения или армии) и позиция, которые следует развивать и использовать для достижения преимущества и победы. Так же стоит осуществлять контроль над экономическим ресурсом, для дальнейшей возможности развития игрового процесса.
Необходимо было реализовать:
Позиционную карту с возможностью прокрутки по краям.
Физику движения объектов(юнитов в частности).
Логику управления юнитами.
Логику юнитов.
Логика строительства зданий, добычи ресурса, построения объектов
AI – действия противника.
Логику взаимодействия между юнитами.
Описание основных игровых объектов.
Юнит – основная боевая единица игроков. Непосредственно с помощью юнитов осуществляется большинство действий в игре.
Имеет следующие характеристики:
Здоровье (На текущий момент и максимально возможное)
Скорость движения
Оружие(Тип боеприпасов, наносимый урон, дальность поражения)
В игре представлены следующие типы юнитов:
Солдат – наиболее слабый юнит, имеет малый запас здоровья, малый урон, что компенсируется его дешевизной.
Танк – средний по силе юнит, имеет средний запас здоровья, медленную скорость движения, средний урон.
Самолет – наиболее сильный юнит, имеет большой запас здоровья, большую скорость, большой урон, возможность беспрепятственно двигаться по игровой площадке.
Все юниты могут непосредственно взаимодействовать друг с другом – сталкиваться, атаковать вражеские единицы и т.д.
Здания – вторичные единицы. Обеспечивают процесс создания, улучшения, и контроля над юнитами.
Существует 3 типа зданий:
Производственное – здание, осуществляющее процесс производства юнитов, и их максимальное количество. Каждое производственное здание увеличивает максимально допустимый предел юнитов на 5 боевых единиц. Стоит 50 единиц энергии.
Улучшающее – здание, осуществляющее улучшение характеристик юнитов – скорости движения, атаки, показателя здоровья. Каждое улучшение открывается вместе со строительством нового улучшающего здания. Стоит 50 единиц энергии.
Генераторы – здание, осуществляющее процесс выработки энергии(по 3 единицы в 5 секунд). Стоит 20 единиц энергии.
Земля – квадратная площадка, на которой располагаются юниты и здания. Существует 3 игровых типа земли:
Строительная – площадка земли, отведенная под строительство зданий игрока. Расположена в верхнем левом углу карты.
Площадки высадки – специальные участки земли, на которые производится высадка новых юнитов. Расположены в верхнем левом углу экрана (Площадка игрока) и нижнем правом углу(Площадка противника).
Игровая зона – остальная игровая часть земли. Каждый квадратный участок земли обладает своими свойствами, которые незначительно улучшают\ухудшают возможности юнитов. В частности снижение скорости движения или же увеличение наносимого урона(«Выгодная позиция»).
Диаграмма классов.
Core – Основной класс игры. Обеспечивает взаимодействие между объектами, их правильную обработку, подачу команд основной управляющей структуре Game Microsoft XNA.
Unit – Класс, обеспечивающий работу с юнитом – логику, физику движения, прорисовку, взаимодействие с другими юнитами.
Bullet – Класс для представления снаряда. Обеспечивает его логику поведения, и прорисовку.
UnitType – Перечисление,, хранящее в себе типы юнитов.
Building – Класс для представления здания. Обеспечивает его логику поведения, и прорисовку.
Building Type – Перечисление, хранящее в себе типы зданий.
AI – Статический класс для управления действиями противника.
Construct Menu – класс для представления и работы с меню постройки юнитов, зданий и улучшений.
Resource – класс для представления ресурса, его генерации по истечению некоторого промежутка времени.
Icon – класс для представления иконок игровых объектов(зданий, юнитов, улучшений).
Ground – класс обеспечивающий прорисовку уровня земли.
GroundSquare – класс обеспечивающий единицу земли, со своими характеристиками.
BonusType – тип бонуса, который дает земля.
Camera – класс обеспечивающий работу с камерой.
Mouse Position – класс-хэндлер мыши.
StatsBar – класс для представления статистической информации об игроке – время, которое прошло с момента запуска игры, количество энергии, текущее количество юнитов, очередь заказа юнитов.
UnitFactory – Статический класс для производства юнитов. Организован по шаблону Фабричный метод(Factory Method).
TextureManager – Статический класс, для работы с текстурами объектов. Осуществляет из загрузку из памяти.
SelectionBox – Класс для представления инструмента выделения юнитов. Обеспечивает прорисовку прямоугольника выделения и выделение юнитов.
StartPlaces – Статический класс для представления информации о некоторых позиционных константах игры.
Player – Перечисление, обозначающее принадлежность типа объекта игроку, или же противнику.
Руководство пользователя.
Игра начинается со следующего окна. По клавише F2 игру можно развернуть в полноэкранный режим.

Нажатием на клавишу С Вы можете открыть меню постройки. Для открытия возможности постройки юнитов необходимо построить здание Бараки. Что бы построить здание требуется 1 раз кликнуть на его иконке в меню постройки, затем с помощью мышки указать место постройки. Строить здания можно только в строго отведенной для этого зоне. После этого кликнуть мышкой еще раз для установки здания. После этого откроется меню постройки юнитов. Создать юнита вы можете нажав на соответствующую иконку в меню. Юнит появится не сразу, а лишь через 5 секунд после заказа. Все совершенные заказы ставятся в очередь постройки. Очередь постройки находится вверху на экране статистики.

После производства юнитов, зажав левую клавишу мышки, вы можете выделить всех ваших текущих юнитов. Красная полоска над каждым юнитом – это их показатель здоровья(Health Bar). Управление юнитами осуществляется посредством нажатия правой кнопки мыши. Вражеская база расположена в правом нижнем углу карты. Что бы прокрутить карту, достаточно подвести мышку к краям карты, или же воспользоваться клавишами стрелок. Формируя отряды и здания, вы добьетесь роста и улучшения вашей армии. Через какой-то промежуток времени отряд противника впервые нападет на вас, и вам придется оборонять свою базу. Атаковать противника ваши отряды могут так же по нажатию правой клавиши мыши. Для окончания игры вам надо уничтожить всех юнитов противника, и все здания противника.

