10
Привет, ребята. В этой статье хочу рассказать о функции, которая превращает Active
Танк, который копает землю
На самом деле в игре должен быть не танк, а что-то вроде этого:
Объект грунта — это с Backdrop
Танк останавливается, если сталкивается с ним.
Но к танку привязан объект, который всегда находиться перед танком, именно он копает землю. Далее я буду называть его «объект копания».
Он меняет направление вместе с танком.
Этот объект является объектом Active, но когда он сталкивается с землёй, то превращается в Backdrop с параметром not an obstacle (не является препятствием) и накладывается поверх грунта. Для этого применяется действие — Paste image into background.
Backdrop можно создать в виде: лестницы, платформы, препятствия, не препятствия и как фон.
В том месте где накладывается объект копания, препятствия уже не будет и танк спокойно проезжает. Объект настроен как невидимый, что бы его не было видно, когда танк вылазит на поверхность.
По сути, он остается невидимым всё время. То, что мы видим это лишь след, оставляемый его картинкой.
Задний фон в этом моменте играет важную роль — он скрывает часть объекта копания, когда танк бурит около поверхности.
Дополнительные элементы
Этих элементов нет в активном примере, показанном на этой странице. Их можно увидеть в исходном файле.
Когда танк копает, из-под него вылетают куски грунта.
Камешек — это Pinball movement, который создаётся каждые 30 миллисекунд в активной точке объекта копания, если происходит столкновение с грунтом.
Когда камешек покидает сцену игры, его нужно удалить.
Ещё по краям туннеля остаются полоски светлого цвета. Это, как и куски грунта сделано просто для украшения игры.
Полоски создаются с помощью двух маленьких точек (размером 2×2) по бокам объекта копания. Их координаты закреплены за активной точкой объекта копания и зависят от направления танка.
Точки создают за собой след при помощи того же действия.
Здесь важно, что бы точки находились за пределом объекта копания.
Переключение между платформером и бурилкой
В игре танк имеет два типа движения: на поверхности танк движется как платформер, а под землёй он движется в четырёх направлениях.
Код игры разбит на две группы событий: для обычного танка и бурилки. Из платформера в бурилку танк превращается простым нажатием кнопки вниз.
А когда танк вылезает на поверхность, то переход к платформеру происходит следующим образом: если танк задевает полоску грунта и при этом он движется наверх, то включается флаг, который означает, что танк находиться около поверхности.
Когда танк полностью вылезет из-под земли, он уже не задевает полоску-детектор, а флаг всё ещё включен. Это означает, что танк выбрался на поверхность и нужно переключиться на платформер.
Здесь также нужно создать ещё одно событие для предотвращения бага.
Минусы данного способа
1) Как вы уже поняли, этот метод не стирает землю, а просто накладывает объект сверху. Так что, к сожалению, не получиться сделать задний фон находящийся за землёй.
2) Количество объектов, создаваемых таким способом, ограниченно. Максимум, который вы можете установить — это 20000. Настраивается в свойствах кадра:
3) Почему-то эта функция не работает в HTML5. Активный пример, который вы видите на этой странице сделан не так как описано в статье. На других платформах всё работает нормально.