Test
test
test
Новогодний подарок всем любителям классики! Ремейк нормально запускается и работает под Windows, Linux, Android, iOS и Mac OS X. Запускается и в веб-браузере, но там часть звуков не воспроизводится.
Посмотреть исходный код под Unity, модифицировать игру под себя, предложить исправления бага или скачать уже собранную версию можно на гитхабе. Там же лежат ссылки на оригинальную версию под MS-DOS, ссылка на Google Play и так далее.
Привет, друзья! Наконец дошли руки опубликовать исходники мини-игрушки, которую я собирал в качестве тестового задания для одной компании. На проект потрачено два вечера. Плюс вечер на рефакторинг. Поэтому есть множество багов, сильно за них не бейте =)
Весь код лежит на Bicbucket, а описание, что и как работает - под катом.
И да, в репозитории лежит не проект, а только папка Assets. Поэтому не забудьте назначить объектам теги. Какие? Напишу ниже. Поехали!
Вот так выглядит игра. Просто и скромно. Фичи:
1 - Генерация карты при загрузке уровня. Вообще, карта собирается по словарю. Поэтому массив с объектами с карты можно хранить как угодно. Хоть в текстовом документе. Но в моём случае карта заполняется рандомными объектами.
2 - 6 видов объектов на карте: кирпичные блоки (можно разрушить, но нельзя проехать), бетонные блоки (ни разрушить, не проехать), вода (не разрушается, по ней нельзя ездить, но через неё можно стрелять), кусты/трава (не разрушаемые объекты, в которых можно прятаться. Турельки вас в кустах не видят и перестают стрелять. Из кустов можно успешно вести огонь). Плюс два вида турелек.
3 - Два вида турелей. Одни - направленные и стреляют строго прямо. Вторые - направляют башню на игрока и ведут прицельный огонь.
4 - Система бонусов. Рандомно выпадает 3 вида бонусов: взрывающий окружающие турели, увеличивающий скорость танка и увеличивающий скорострельность танка.
Что касается самого танка - он умеет крутить башней и стрелять в сторону курсора.
Управление: WASD или стрелки - движение танка.
Мышь - направление стрельбы. Стреляем на левую клавишу мыши.
Кстати. На главном экране (сцена Main) есть белый квадрат. Это как бы кнопка "Play".
Внимание! Теги! Если не дать объектам теги - вы не сможете никого убить и ничего разрушить. А поскольку стрелялки в принципе не для пацифистов - давайте исправлять.
Тег Block - требуется всем не разрушаемым объектам. Обратите внимание, что на сцене имеется объект floor и в нём четыре куба. Это ненавистные всеми игроками невидимые стены, которые в моём случае не только не дают танку свалиться с платформы, но и уничтожают объекты пуль, чтобы они не захламляли сцену и не занимали память.
Тег Bullet - вешаем на префаб Bullet (в папке Resources).
Тег Turret - вешаем на оба вида турелей (всё в той же папке).
Тег Grass - вешаем на одноимённый префаб (угадайте, где?).
И напоследок поясню назначение скриптов.
Класс AudioManager - подписывается на все события, при которых должны воспроизводиться звуки. И, соответственно, когда это событие происходит - воспроизводят соответствующий звук.
Класс BonusController - вращает объект (да, лень было возиться с анимацией, реализовал вращение из кода) и при столкновении с объектом "Player" - вызывает соответствующее событие.
Класс BonusSystem - рандомно создаёт бонусы и раскидывает их по карте.
Класс BulletController - рассчитывает баллистику толкает снаряд вперёд.
Класс DestroyableObj - даёт объектам здоровье и возможность умирать.
Класс GameManager - управляет игровым процессом.
Класс MainScreenManager - нужен исключительно для запуска игры.
Класс MapGenerator - отвечает за сборку карты. В моём случае - её генерирует.
Класс Messenger - это система событий.
Классы TankController и TurretController - управляют танком и турельками, соответственно.
На этом всё. Если будут вопросы - пишите в комментариях. Постараюсь ответить.
Ссылка на исходники: bitbucket.org/TonyKOT/tanks-demo
Подписывайтесь, чтобы не пропустить что нибудь новенькое. И не забывайте ставить плюсы, это лучшая награда для автора. Спасибо!