Найти тему

Игра для Андроид "Чубрик и яйца" Часть 2 "Игровые элементы"

Вся ниже представленная информация есть в Телеграмм и доступна всем по ссылке t.me/ded63russtudio
В ближайшее время данный канал в Дзене поддерживаться не будет!
Настоятельно рекомендуем воспользоваться указанной ссылкой...

В предыдущей Части 1 были рассмотрены "Запуск и Канвас". Для тех кто не читал, вот ссылка... https://dzen.ru/a/ZU51Wf4lWB2MYXlG?referrer_clid=1400&

Для определения игровых элементов сначала надо понять концепцию самой игры.
Итак, Концепция:
В прототипе "Электроника" есть четыре лотка, с которых в рамдомной последовательности сыплются яйца. Задача Игрока-Волка вовремя подставить корзинку к нужному лотку. В противном случае яйцо падает на пол и разбивается.
Волк имеет четыре отрисованных картинки своего положения у каждого лотка соответственно.
Собрать надо максимальное количество яиц и время при этом не ограничивается.
Все простенько и понятно.

Мы сделаем несколько иначе.
На первом уровне игры поставим всего два лотка, на втором - четыре, на третьем - шесть, на четвертом - восемь. Сделаем скорость рандомности яиц разной на разных лотках.
Двигаться наш Герой будет плавно по оси Х влево и вправо, управляемый тач-скрином.
На первом уровне для победы надо собрать 15 яиц, на втором - 30, на третьем - 60 , на четвертом -80. И лишь при выполнении каждой задачи игра будет остановлена с выходом в Панель Результатов и меню перехода дальше. Время, естественно никто не ограничивает.

Для пущего интереса к яйцам добавим два паразитных объекта: "снежок" и "стальной шарик", которые ловить не следует. Снежок при попадании в корзину разобьет 2 яйца, стальной шарик - 5 яиц. И, если яиц в корзине окажется отрицательное число, игра будет остановлена и защитано поражение.

В целом для начала достаточно.
Нам стало быть нужны следующие спрайты:
Целое яйцо, снежок, стальной шарик, лоток, сам Герой и корзинка.
Находим спрайты в разрешении png и складываем их в папку Sprites

Мой Герой - Чубрик имеет два спрайта - левый и правый. Это для того, чтобы взгляд был направлен в сторону движения. Хотя это может быть не актуальным, так как в процессе игры герой может быть закрыт пальцем игрока.

Готово, спрайты есть - начинаем с ними работать.
Сначала Герой. Тащим его на сцену, Параметр Order in Layer = 1, ширину и высоту подбираем как-то так

-2

Игрока в Инспекторе оснащаем двумя компонентами: Capsule Collider 2D Rigidbody 2D (AddComponent/Phusics2D)

-3

и (AddComponent/Rigidbody2D) соответственно

Первый компонент оставляем как есть, а во втором строку Gravity Scale обнуляем

-4

Следующий элемент - корзинка.
Тащим на сцену. ставим на голову герою, выравниваем габариты, Order in Layer = 2, никаких компонентов в Инспекторе к корзинке добавлять не надо. Надо добавить пустой объект.
В Иерархии создаем его и даем имя Lovilka. В Инспекторе добавляем элементу компонент BoxCollider2D, подсвечиваем его нажатием кнопки EditCollider и выравниваем по корзинке вот так

-5

Следует отметить, что чем тоньше будет коллайдер, тем интереснее игра! Дело в том, что боковая часть коллайдера будет также реагировать на соприкосновение с летящим объектом и внешне будет казаться, что шарик пролетел мимо корзинки, а по факту будет засчитано его попадание в нее.

Теперь надо объединить все три новых объекта в один в Иерархии.
Основной объект - корзинка, а Lovilka и сам игрок, даем ему имя Player, будут дочерними объектом корзины

-6

Займемся лотками.
Тащим спрайт лотка на сцену, меняем размеры, оснащаем компонентом BoxCollider2D и в Rotation по оси Z ставим угол 30, ставим лоток на место. Именуем LotokRight

-7

Дублируем созданный лоток, переименовываем в LotokLeft и меняем угол на -30.
Готово!
Для лотков лучше создать отдельную папку Lotoks, куда и переместить эти элементы

-8

Остались падающие элементы.
Начнем с яйца. Тащим на сцену, Order in Layer = 1, ставим на любой лоток и выравниваем размеры. Добавляем компоненты:
Rigidbody2D со значениями Mass 0.1 и Gravity Scale 0.5

Два CapsuleCollider2D один из которых с галочкой в строке Is Trigger, второй без изменений. И самое главное коллайдер с отметкой - триггерный, должен быть внешним, а коллайдер без изменений - внутренним. Это необходимо для того, чтобы внешний триггерный коллайдер учитывался нужными плоскостями, а внешний контактировал со всеми остальными.
В верхней части Инспектора есть строка Tag с ракрывающимся списком, в котором значится Untagges. Раскрываем список и жмем Add Tag

-9

В строке List is Empty жмем + и в открывшемся меню пишем новый таг egg, жмем Save

-10

В Иерархии снова выбираем наше яйцо и теперь, нажав на выпадающий список строки Tag, видим созданный нами таг - выбираем его

-11

С яйцом почти закончили. Надо проверить - как оно себя ведет. Для этого жмем кнопку Play и смотрим... Забавно катится и падает!
Все работает для яйца.

Теперь все то же самое следует проделать для снежка и стального шарика.
Обоих на сцену и повторяем весь процесс для яйца с некоторыми изменениями в компоненте Rigidbody2D, в частности в строке Mass для стального шарика поставим 0,4, а для снежка 0,2. Ну и естественно коллайдер нужен круглый CircleCollider2D.
Почему массы всех элементов разные? Наверное потому, что стальной шарик тяжелее яйца и снежка, что при одинаковой гравитации позволяет им лететь с разной скоростью - чего собственно нам и надо!

Снова запускаем Play, разместив падающие элементы на разных высотах для эксперимента, и смотрим их поведение

-12

Все падает, катится с разными скоростями - замечательно!
Теперь в папку Prefabs в Project надо перенести все три созданных падающих элемента.
В Иерархии все элементы резко посинели, что и говорит о том, что они стали префабами.
Однако мы совсем забыли назначить таги снежку и шарику, а они уже в префабах - что делать?

Да, ничего особенного... Выбираем снежок в папке префаб и будет такой же Инспектор. Раскрываем список тагов, пишем новый таг, как у яйца и ву-а-ля. Шарику даем таг stal, а снежку таг snejok.

Вот теперь все игровые элементы готовы.
На сцене яйцо, снежок и шарик больше не нужны, поэтому их удаляем.

На этом Часть 2 окончена.
Следующая Часть 3 "Управление игроком и предметами"