4. РАЗРАБОТКА СОБСВЕННОЙ ИГРЫ.
Обязательно к прочтению
Задача разработчика
Разработать универсальную систему интерфейса и вывести всю необходимую информацию на экран.
Универсальная система интерфейса должна уметь:
- Открывать и закрывать окна (настройки, результаты);
- Открывать и закрывать игровые экраны (главный экран, выбор персонажа, игровой процесс)
- Закрывать полупрозрачной картинкой задний фон за окном.
- Быть построенной на стеке.
Универсальная система представляет собой 2 менеджера. Менеджер окон и менеджер страниц. Разберем менеджер окон. Скрипты игровых окон наследуются от базового окна. Менеджер умеет открывать и закрывать окна. В случае, если окно открывается, оно ложится в стек, если открывается следующее – ложится выше. Когда окно закрывается - вынимаем из стека.
WindowManager.Open(WindowID.Settings); - открыть окно
WindowManager.CloseLast();
WindowManager.Open(WindowID. Settings); - открываемнастройки
WindowManager.Open(WindowID.Creators); - открываем создателей
WindowManager.CloseLast(); - закрываем создателей
WindowManager.CloseLast(); - закрываем настройки
Менеджер страниц проще. Открываем страниц и автоматически закрываем предыдущую.
PageManager.Open(PageID.MainMenu);
PageManager.Open(PageID.ChooseHero, Params); - Params – словарь с параметрами
PageManager.Open(PageID.Game, Params);
Базовое окно и страница должны иметь методы OnOpened и OnClosed которые должны вызываться в моменты открытия и закрытия менеджером. Для более гибкой работы небходимо сделать возможность передавать в OnOpened и OnClosed словарь параметров типа Dictionary<string, object>
Into the Space*
Космическая игра, в которой требуется отбиваться от волн противников при помощи космического корабля.
Игрок перемещается только влево и вправо мышкой.
Противники перемещаются влево, вправо, меняются свою позицию по высоте, стреляют в героев.
Скорость снаряда настроить так, чтобы от него можно было увернуться (но не слишком легко).
Персонаж имеет здоровье. В случае потери здоровья - игрок умирает, игра заканчивается. С каждой волной противники имеют все больше здоровья. Здоровье противников увеличивается на 5%, скорость снарядов увеличивается на 5%.
Волны:
- 1)3 противника;
- 2)5 противников;
- 3)4 противника;
- 4)6 противников;
- 5)8 противников;
- 6)12 противников;
- 7)8 противников;
- 8)циклом начиная с 4 шага.
Над каждым противником должен быть прогресс бар со здоровьем. Здоровья игрока пишется в левом нижнем углу. За каждое попадание по врагу начисляются бонусы в %, когда бонусы заполняются на 100% появляется ульта (пример Overwatch), которая при использовании (правая кнопка мыши) поражает всех противников на карте с уроном равным 250% от базового урона. Базовый урон наносится левой кнопкой мыши.
Перед стартом игры выбирается один из двух вариантов корабля:
- Красный персонаж выпускает снаряды каждые 0.1 секунду очередью перед собой до тех пор, пока зажата левая кнопка мыши.
- Синий персонаж выпускает снаряды каждые 0.2 секунды очередью в три стороны одновременно (вперед, -15 градусов влево, 15 градусов вправо) до тех пор, пока зажата левая кнопка мыши.
За каждого убитого противника начисляются очки – сколько здоровья у противника, только и очков.
Делаем игру так, чтобы количество одновременно играющих персонажей в будущем можно было увеличивать.
Сделать включение и выключение звука.
Размер экрана, под который проектируется игра: ширина 1920, высота 1080.
Остальное по своему желанию.
Пример визуального оформления на скриншотах ниже.
Графику и звуки можно взять тут - https://www.assetstore.unity3d.com/en/#!/content/20749