Брайан У. Керниган, Деннис М. Ритчи Язык программирования C
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФедеральноеГОСУДАРСТВЕННОЕ бюджетноеОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»
Факультет информатики и вычислительной техники
Кафедра ИиСП
Курсовая работа
По дисциплине «Информатика и программирование»
«Компьютерная игра Shoot and Run»
Выполнил:
студент группыПС-21
факультета Информатики
и Вычислительной Техники
специальности «Программная инженерия»
Васильев А.А.
Проверил:
Сокольников А.М.
г. Йошкар-Ола
Введение
В качестве проектной курсовой работы мной было выбрано создание игры в жанре экшн с видом сверху сбоку времен SEGA.Данный жанр был выбран, потому что привлекает интересным и динамичным игровым процессом, а “мультяшная” графика и аудио сопровождение дополняют удовольствие от игры и дают игроку расслабиться.
Игра обладает интересным разнообразным геймплеем вместе с красивой и интересной визуальной концепцией. В игре присутствует разнообразие врагов, предметов и оружия, а также финальный Босс.
В качестве языка программирования был выбран - C++11.
Среда разработки – Visual Studio 2015.
Для работы с мультимедиа (графика, звуки, шрифты) была использована библиотека SFML 2.3.2.
Концепция проекта
Проект представляет собой консольное приложение, при запуске которого перед пользователем появляется окно. Существует несколько состояний игры, каждое из которых влияет на отображаемое содержимое окна, предоставляет игроку определенную информацию и подразумевает определённое взаимодействие с игрой.
Титульный экран
Итак, первое, что видит игрок - это надпись, сразу дающая понять идею игры. От пользователя требуется нажать enter для начала игры. При нажатии запускается сам игровой процесс
Игра
При переходе в состояние игры на экране отображается карта, захваченная камерой, герой, мини-карта, на которой отображено положение нейтральных существ относительно героя, а также все игровые объекты, находящиеся в его поле видимости.
Сверху слева на экране отображен бар здоровья персонажа, предмет инвентаря в руке, боезапас. Если при стрельбе количество патронов снижается до нуля, игрока информируют о том, что происходит перезарядка.
Слева на экране отображена цель текущего уровня.
Справа вверху отображается мини - карта, на которой показано местоположение NPC относительно героя.
Предметы появляются в случайной доступной для перемещения точке карты.
Полное окно игры:
Герою нужно убивать врагов, а также спасать нейтральных существ (соседей).
Особенности состояния зверя:
· Поглощение урона (броня)
· Ближняя атака
· Увеличенная скорость перемещения
· Невозможность использования предметов
Враги бывают двух типов (обычные зомби, дальние враги) , а также в игре есть финальный босс.
При получении урона от обычных зомби игрок подпрыгивает (от удара), тем самым становится обездвижен на некоторое время (игрок теряет над ним контроль).
При получении урона NPC погибает.
Спася всех соседей, игрок сталкивается с последним препятствием – боссом, он имеет очень большой запас здоровья, различные состояния, определяющие его поведение.
Босс переходит из четко заданного одного состояния в другое, при определенном поведении героя. Следует отметить, что во время сражения при состоянии босса “топать” он возрождает врагов. Таким образом, сражение происходит не “Игрок vs Босс”, а игрок против всех.
Состояния Босса
1. Топот в середине карты.
Босс топает по земле и вблизи него появляются 4 врага по очереди). Тип врагов чередуется каждую волну.
2. Преследование героя
Перемещение к герою до тех пор, пока Босс не будет способен стрелять по герою (вблизи).
3. Стрельба молоком
Если Босс находится неподалеку от героя, то он начинает по нему стрелять молоком из бутылки.
4. Рывок к герою.
Если Босс преследует героя но всё еще не мог подойти близко для стрельбы, то он становится злым и совершает быстрый рывок. Рывок представляет собой перемещение с огромной скоростью, при соприкосновении с героем – он становится растоптан по земле. В таком состоянии герой не способен передвигаться около секунды.
5. Уход в центр карты (конец текущей “волны”)
Босс прекращает стрелять / преследовать героя и направляется в центр карты. Если пришел к центру – состояние Босса переходит в первое (топот и респавн врагов)
Конец игры
Игра заканчивается после смерти финального босса. Игроку предлагается пройти её сначала, либо покинуть игру.
Сущности системы
Название | Свойства | Поведение | Взаимодействие |
Герой | Среднеездоровье; Высокаяскорость; Получает эффекты от бонусов. | Передвигается во все стороны, управление и стрельба с клавиатуры. Может использовать предметов (стрельба, превращение в зверя, восполнение здоровья, бросок гранаты) | Столкновения с врагами Собирает предметы; Получает повреждения от врагов. |
Зомби(враг) | Низкая скорость; Низкое здоровье. | Передвигается по прямой (по вертикали, горизонтали и диагоналям) Нанесение урона герою при соприкосновении | Столкновения с игроком; Получает урон от оружия игрока, а также от атак игрока в форме зверя. |
Метатель топора (враг) | Средняяскорость. | Передвигается по прямой (по вертикали, горизонтали и диагоналям) Атака героя топором вблизи Метание топора если герой в радиусе видимости | Столкновения с игроком; Получает повреждения от пуль игрока. |
Босс(враг) | Высокаяпрочность; Высокая скорость; Стрельба (пули и ракеты). | Передвигаетсяпо прямой Обладает состояниями поведения (описаны выше таблицы) | Получает урон от оружия игрока, а также от атак игрока в форме зверя. |
NPC (сосед) | Низкоездоровье Отображение на мини-карте | Не способны передвигаться | Исчезновение при соприкосновении с героем. Смерть при уроне от врагов. |
Топор (врага) | Высокаяскорость; Среднийурон. | Вылетает в направлении героя. Летит по прямой траектории. | При столкновении с героем – ему наносится урон. Исчезает при столкновении с объектами. |
Брызги молока (босса) | Средняяскорость; Среднийурон. | Летят по прямой траектории. | При столкновении с игроком наносит ему урон. |
Мини-карта | Отображается вверху справа Содержит маркеры игрока и соседей. | При перемещении игрока положение маркеров соседей обновляется с учетом нового положения игрока. | При исчезновении NPC – его маркер удаляется |
Граната | Средняяскорость; Высокийурон. | Летит по параболе по горизонтали и вертикали. | При приземлении – влечет за собой взрыв, наносящий урон врагам в радиусе, исчезает. |
Банка газировки | Появляется в случайном доступном для перемещения месте на карте. | При использовании восполняет здоровье | |
Микстура | Длительность – 16 секунд. Делает игрока неспособным к использованию предметы | Появляется в случайном доступном для перемещения месте на карте. | При использовании превращает героя в зверя Может быть подобрана игроком. |
Патроны | 2 магазина любого вида оружия | Появляется в случайном доступном для перемещения месте на карте. | При соприкосновении с героем пополняют боезапас в инвентаре игрока Могут быть подобраны игроком. |
Оружие | Имеет боезапас (количество патронов в магазине, вне магазина) | При обнулении боезапаса – обновляет боезапас, по истечении перезарядки | При использовании – появляется пуля, имеющая определенное направление. Может быть подобрано игроком. |
Пуля (игрока) | Высокаяскорость; Среднийурон. Средняядистанция полета | Летит по прямой траектории. | При столкновении с врагом – наносит ему урон. Исчезает при столкновении с объектами либо при превышении максимальной дистанции полета. |
Список источников:
Оригинальные
Брайан У. Керниган, Деннис М. Ритчи Язык программирования C.