Практическая часть. Основные концепции игры:
Основные концепции игры: Суть игры заключается в управлении некоторым ресурсом посредством мыши клавиатуры. Обычными ресурсами в военных стратегиях являются войска (отдельные персонажи, подразделения или армии) и позиция, которые следует развивать и использовать для достижения преимущества и победы. Так же стоит осуществлять контроль над экономическим ресурсом, для дальнейшей возможности развития игрового процесса. Необходимо было реализовать: 1. Позиционную карту с возможностью прокрутки по краям. 2. Физику движения объектов(юнитов в частности). 3. Логику управления юнитами. 4. Логику юнитов. 5. Логика строительства зданий, добычи ресурса, построения объектов 6. AI – действия противника. 7. Логику взаимодействия между юнитами.
Описание основных игровых объектов. Юнит – основная боевая единица игроков. Непосредственно с помощью юнитов осуществляется большинство действий в игре. Имеет следующие характеристики: · Здоровье (На текущий момент и максимально возможное) · Скорость движения · Оружие(Тип боеприпасов, наносимый урон, дальность поражения) В игре представлены следующие типы юнитов: · Солдат – наиболее слабый юнит, имеет малый запас здоровья, малый урон, что компенсируется его дешевизной. · Танк – средний по силе юнит, имеет средний запас здоровья, медленную скорость движения, средний урон. · Самолет – наиболее сильный юнит, имеет большой запас здоровья, большую скорость, большой урон, возможность беспрепятственно двигаться по игровой площадке. Все юниты могут непосредственно взаимодействовать друг с другом – сталкиваться, атаковать вражеские единицы и т.д. Здания – вторичные единицы. Обеспечивают процесс создания, улучшения, и контроля над юнитами. Существует 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). Управление юнитами осуществляется посредством нажатия правой кнопки мыши. Вражеская база расположена в правом нижнем углу карты. Что бы прокрутить карту, достаточно подвести мышку к краям карты, или же воспользоваться клавишами стрелок. Формируя отряды и здания, вы добьетесь роста и улучшения вашей армии. Через какой-то промежуток времени отряд противника впервые нападет на вас, и вам придется оборонять свою базу. Атаковать противника ваши отряды могут так же по нажатию правой клавиши мыши. Для окончания игры вам надо уничтожить всех юнитов противника, и все здания противника.
Литература 1. Троелсен. Э - Язык программирования C# 2010 и платформа.NET 4, 2011 2. Рихтер Дж. - CLR via C#, 2012. 3. XNA GS Game Community http://msdn.microsoft.com/en-us/centrum-xna.aspx 4. http://stackoverflow.com/
Здесь могла быть ваша реклама. Конечно же шутка, здесь будет ваш листинг кода.
|