GamesQuest

Родительские и дочерние объекты

Связь двух объектов в один по средством родитель-ребенок

Во многих ситуациях при создании игры нужно связать вместе два объекта, таким образом, что бы каждым экземпляр дочернего объекта однозначно относился к своему родительскому объекту. Например у вас есть множество врагов (родительские объекты) в игре, и у каждого врага есть полоска жизней (дочерний объект). В Clickteam fusion 2.5 такая связка объектов происходит когда вы создаете два объекта в одном событии и при этом дочерний объект вы создаете относительно родительского. Теперь давайте подробно.

Объекты. Настройка сцены.

Все очень просто, добавьте из библиотеки на сцену какого-нибудь персонажа.

Затем снимите галочку «создавать при старте» в свойствах этого персонажа.

После этого нужно добавить объект счетчика и превратить его в горизонтальный бар для жизней. Нажмите на меню Файл (Insert> Insert New Object) и добавьте объект counter. У него тоже снимите галочку «создавать при старте». Теперь что бы превратить числовой счетчик в полоску жизней нужно поставить ему тип Horizontal bar и задать для него цвет. Обязательно нужно поставить Minimum Value — 0, а Maximum Value — 100, именно диапазон этих значений и отражает горизонтальный бар счетчика.

Создаем переменную жизней у персонажа и сразу устанавливаем в значение 100.

Что бы особо не заморачиваться с движением персонажа, выставим ему тип bouncing ball.

События. Логика построения связи родитель-потомок

Будем создавать новых человечков нажатием клавиши ПРОБЕЛ.

И вместе с человечком в этом же событии будем создавать счетчик жизней в позиции относительной к человечку.

Далее того, что бы полоска жизней перемещалась вместе с персонажем нужно создать событие Always (Всегда) и присвоить позицию относительно персонажа.

Здесь же в событии Always создаем действие присвоения значению счетчика значения переменной «Жизни».



Если вы сейчас запустите свою игру и нажмете пробел несколько раз вы увидите как появляются персонажи с жизнями. Теперь давай создадим события для нанесения урона персонажам. Мы можем создать простое событие клика мышкой по персонажу и здесь отнимать у него 10 жизней:
1. Создаем событие клика мыши по объекту персонажа;


2. Отнимаем 10 из переменной «Жизни».



Запустите игру. Теперь по клику мыши на человечке у него укорачивается полоска жизней и именно у того по которому кликнули, что говорит о том что каждая полоска жизней относится к своему персонажу.
Теперь нам осталось сделать, разве что, события для отталкивания человечков от краев сцены

и уничтожать персонажа если его жизни равны нулю

Полный код:

Скачать исходный файл.

Вывод

Вот так во Fusion вы можете соединять объекты вместе устанавливая связь родитель-потомок. Когда вы создаете два объекта в одном событии, они автоматически становятся парой, и от этого будут зависеть любые будущие события, условия или выражения над этими объектами.

Если вы не создадите оба объекта в одном событии, Fusion не будет автоматически их соединять и вам придется делать это вручную, об этом можно прочитать тут.

Связь объектов родитель-потомок — это очень эффективный и экономящий время метод, который вам наверняка пригодится в разработки игр.

Используйте эту функцию в своих будущих проектах и будет вам счастье!

Во многих ситуациях при создании игры нужно связать вместе два объекта, таким образом, что бы каждым экземпляр дочернего объекта однозначно относился к своему родительскому объекту. Например у вас есть множество врагов (родительские объекты) в игре, и у каждого врага есть полоска жизней (дочерний объект). В Clickteam fusion 2.5 такая связка объектов происходит когда вы создаете два объекта в одном событии и при этом дочерний объект вы создаете относительно родительского. Теперь давайте подробно. Объекты. Настройка сцены. Все очень просто, добавьте из библиотеки на сцену какого-нибудь персонажа. Затем снимите галочку «создавать при старте» в свойствах этого персонажа. После этого нужно добавить объект…
Родительские и дочерние объекты
Родительские и дочерние объекты
2014-12-27
100

10

Рейтинг: 5 ( 1 голосов)