Создаём первое условие: New condition – Storyboard controls – Start of frame
, в столбцах Item 1 и Item 2 выбираем Movement – Stop. Так при старте фрейма мы останавливаем наши объекты, так как изначально скорость движения у них указана 60 (в настройках типа перемещения).Второе условие: если мы кликаем мышью по объекту, мы направляем его в сторону активного квадрата. New condition – The mouse pointer and keyboard – The mouse – User clicks on an object
. Нажимаем ОК.В появившемся окне выбираем Friends
.Дальше кликаем на столбец друзей – Direction – Look in the direction of – Relative to –
Зеленый квадрат. Нажимаем «OK» в следующем окне, подтверждая координаты 0:0. Далее снова кликаем на столбец друзей – Movement – Set speed и указываем скорость движения 60.Заметьте, мы указываем не конкретный предмет инвентаря, а сразу всю группу.
Теперь давайте остановим объект и разместим его в ячейке. Сделаем это в виде условия накладывания объекта – здесь мы опять используем группу – на наш активный квадрат. При этом мы размещаем предмет по центру квадрата, останавливаем его, а сам квадрат отодвигаем в сторону так, чтобы он был размещён по центру следующей ячейки. New object – Friends – Collisions – Overlapping another object –
Зеленый квадрат. Кликаем на столбец друзей – Position – Select position – Relative to – Квадрат. Еще раз кликаем на столбец друзей – Movement – Stop. Далее столбец квадрата – Position – Select position – Relative to – Квадрат.Проверяем работу – всё должно работать. Предметы летят к квадрату, сам квадрат смещается на одну ячейку.
Но что будет, если будет заполнено всё место в инвентаре?
Сделаем наш квадрат невидимым. Расклонируем любой наш объект, чтобы проверить заполненность инвентаря.
Сначала научим программу удалять объекты из инвентаря. Условие: если мы кликаем левой кнопкой мыши по объекту, при этом объект находится в зоне меню, его можно удалить.
New condition – The mouse pointer and keyboard – The mouse – User clicks on an object – OK – Friends
. Далее кликаем на условие – Insert – The mouse pointer and keyboard – The mouse – Check for mouse pointer in a zone и выделяем нижнюю часть нашей картинки (ячейки).Кликаем на столбец друзей – Destroy
.Следующее условие. При выходе активного квадрата за пределы нашего инвентаря его нужно вернуть на первую позицию. Но сделать это нужно в том случае, если объектов в инвентаре меньше или равно семи. New condition – Квадрат – Position – Compare X position to a value
, затем задаем значение и выбираем Greater or equal.И ещё. Почему на первую позицию, ведь она может быть занята предметом? Посмотрим ещё раз наш алгоритм. Если первая позиция будет занята предметом, то квадрат сразу сместится на вторую, а если занята вторая – на третью, и так далее.
Кликаем на условие – Insert – Friends – Pick or count – Compare to the number or “Group.Friends” objects in a zone
и снова перемещаем окно на наши ячейки внизу. В появившемся окне выбираем Lower or equal, 7.Первую координату Х активного квадрата мы узнаем из его свойств.
Кликаем на столбец квадрата – Position
– Set X coordinate и вводим координаты.Так как у нас уже есть условие по клику мыши, исключим для него возможность срабатывания, когда предмет уже находится в инвентаре (кликнем на координаты и выберем в выпадающем списке Lower
). В Start of frame добавим опцию Stop для Item 3-10.Проверяем. Заполняем инвентарь предметами, удаляем их и снова заполняем. Всё должно работать.
Программу, которую мы создали, можно ещё и оптимизировать. Какие наши действия были лишними?
А в следующий раз мы познакомимся с приближением в играх.
ЧАСТЬ II. ФУНКЦИОНАЛ ИГР
Урок 5. Приближение в играх
В этом уроке мы узнаем, что такое zoom-zoom. Мы рассмотрим три способа, но сначала зайдём на официальный сайт Clickteam
— Clickstore и загрузим Mega Shader Pack.Затем перенесём файлы из архива в папку с Clickteam Fusion.
Первый способ
Откроем новый проект, загрузим любой понравившийся фон и добавим активный объект и Backdrop.
Добавим для активного объекта эффект линзы: Properties
– Effects – Lens – OK.Также снимем чекбокс в настройках напротив слов «следовать за фреймом».