Найти в Дзене
Мастерская Wood’Zap

Clickteam Fusion. Обучение. Создание игры на физическом движке. Часть 2

Первая часть перевода: Давайте переместимся в редактор событий. Первым делом в редакторе событий нам нужно создать такие события, чтобы наша игра работала так, как мы этого хотим. Первое, что мы должны установить - это столкновения и обнаружение столкновений. Создайте новое условие, для этого щелкните правой кнопкой мыши на ящике. Выберите Collisions> Backdrop. Помните, что мы установили Ground на задний план?
Поэтому мы сообщаем Clickteam Fusion 2.5, что если наш Crate сталкивается с фоном (например, с землей), то он должен остановиться. После того, как вы создали это условие, найдите Crate среди значков справа, щелкните правой кнопкой мыши и выберите Movement > Stop. Как только вы это сделали, нам нужно сделать то же самое, только при условии, что Crate столкнется с другим Crate. Вставьте новое условие и выберите Collisions > Another Object и выберите Crate. На этой строке условия снова выберите Crate и добавьте Movement> Stop. Если вы запустите игру прямо сейчас, то вы увидите,

Первая часть перевода:

Давайте переместимся в редактор событий.

Первым делом в редакторе событий нам нужно создать такие события, чтобы наша игра работала так, как мы этого хотим. Первое, что мы должны установить - это столкновения и обнаружение столкновений. Создайте новое условие, для этого щелкните правой кнопкой мыши на ящике.

-2

Выберите Collisions> Backdrop. Помните, что мы установили Ground на задний план?
Поэтому мы сообщаем Clickteam Fusion 2.5, что если наш Crate сталкивается с фоном (например, с землей), то он должен остановиться.

После того, как вы создали это условие, найдите Crate среди значков справа, щелкните правой кнопкой мыши и выберите Movement > Stop.

-3

Как только вы это сделали, нам нужно сделать то же самое, только при условии, что Crate столкнется с другим Crate. Вставьте новое условие и выберите Collisions > Another Object и выберите Crate. На этой строке условия снова выберите Crate и добавьте Movement> Stop.

Если вы запустите игру прямо сейчас, то вы увидите, что коробки теперь складываются друг на друга и не падают сквозь землю. Мы сделали это всего за 2 простых события.

Давайте продолжим и заставим нашу игру ожить.Вставьте новое условие: щелкните правой кнопкой мыши игрока «Кен» и повторите вышеуказанные 2 шага для Кена. Столкновение с фоном и столкновением с другим Кеном.

Нам также нужно сообщить Clickteam Fusion 2.5, если Кен столкнется с коробкой, то он будет должен остановиться.

Нам нужно назначить Movement> Stop для Ken и Box. Вставьте новое условие, щелкните правой кнопкой мыши на Кене и выберите Collisions > Another Object и выберите объект Crate. После установки наведите курсор на Кена, щелкните правой кнопкой мыши и вставьте Movement> Stop. Повторите это для Crate...

-4

Помните про объект Detector, который мы разместили раньше? (маленький красный квадрат). С ним мы тоже немного поработаем.

Вставьте новое условие, щелкните правой кнопкой мыши объект Special и выберите Always. После того, как условие будет создано, наведите указатель мыши на объект Detector (маленький значок красного квадрата), щелкните правой кнопкой мыши и выберите Position > Set Х Co-ordinate. В редакторе выражений введите Xmouse.

Щёлкните по той же самой клетке и теперь выберите Position > Set Y Co-ordinate. В редакторе выражений пропишите Ymouse.

Это событие сообщит программе, что одно из условий будет выполняться всегда - красная точка будет находиться в положении курсора “Always > Set position to Xmouse,Ymouse”.

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

Как выглядит готовое событие вы можете увидеть ниже (строка 6)

-5

Теперь, давайте сделаем наш «счетчик скорости».

Мы разместили ранее знаки PLUS (+) и MINUS (-), а теперь сделаем так, чтобы, когда наш игрок нажмет на PLUS, он увеличит скорость, с которой полетит объект, а когда он нажмёт MINUS, это уменьшит скорость , Таким образом, наш игрок может выбрать, с какой скоростью бросить объект в коробки.

Вставьте новое условие, щелкните правой кнопкой мыши объект «Клавиатура и мышь» и выберите Mouse > Check for Mouse Pointer over Object

-6

В следующем диалоговом окне мы хотим определить, что мышь находится на значке PLUS, поэтому нажмите на знак PLUS и нажмите «ОК».

Нам нужно создать второе условие для этого уже существующего условия. Поэтому кликнем по уже имеющемуся условию и добавим к нему ещё одно.

-7

В новом диалоговом окне условий щелкните правой кнопкой мыши по объекту Keyboard & Mouse и выберите Mouse > Repeat while Mouse-Key is Pressed и укажите «Левая кнопка мыши».

Мы создали условие, которое содержит 2 пункта, каждый из которых верен при наступлении данного условия. Наш первый пункт говорит, что мышь наведена на объект, а затем второй указывает, что пользователь должен щелкнуть левой кнопкой мыши.

Таким образом игрок сообщит программе, хочет УВЕЛИЧИТЬ мощность, поэтому давайте теперь перейдем к нашему объекту Power Meter Counter на этой же строке условий. Щёлкните правой кнопкой мыши и выберите Add to Counter в редакторе выражений, введите 2 и нажмите «ОК».

-8

Теперь повторите вышеописанный шаг для знака MINUS, но на этот раз вам нужно будет «вычесть из счетчика» (Subtract From Counter) и ввести 2.

Если вы запустите свою игру сейчас (F8) и нажмёте PLUS и MINUS, то измените мощность в панели питания.Отлично! Мы почти всё сделали!

А сейчас создадим условие: когда наш игрок нажимает кнопку RIGHT-MOUSE-BUTTON, он создаёт нового игрока Ken и запускает его в направлении нашей мыши с той скоростью, которую мы установили в Power Meter.

Давайте не будем забывать, что у нас только 3 жизни. Поэтому создадим событие, которое будет работать только при наличии хотя бы одной.

-9

Нажмите «ОК». Теперь нам нужно вставить второе условие в это событие, как прежде мы уже делали. Щёлкните правой кнопкой мыши на существующем состоянии и выберите Add a New Condition.

Вот так...

-10

В диалоговом окне нового условия щелкните правой кнопкой мыши значок Player и выберите “Compare to player's number of lives”

-11

Когда откроется редактор выражений, нам нужно поставить GREATER и ввести 0. Это означает, что наш игрок сможет запустить Кена только если у него больше 0 жизней. Если у него нет жизней, то он не сможет запустить Кена.

-12

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

Наведите указатель мыши на значок Create Object. Щелкните правой кнопкой мыши и выберите Create Object. В диалоговом окне выбора нажмите KEN. Нажмите «ОК». В следующем диалоговом окне он спросит вас, где вы хотите создать Кена в этот момент. Давайте создадим его прямо за экраном (слева), как показано ниже ...

-13

Нажмите «ОК».

Теперь в той же строке условия перейдите к значку Кена, щелкните правой кнопкой мыши и выберите Direction > Look in the direction of... и, когда он перейдет к frame editor, нажмите на наш маленький красный прямоугольник, который мы создали ранее (DirectionObject ) и нажмите «ОК».

-14

Таким образом, мы создали наш объект Ken и установили его направление в сторону мыши. Ещё нужно установить скорость Ken на скорость, которую мы установили в Power Meter.

Снова в этой же строке условия снова щелкните правой кнопкой мыши значок Ken и выберите Movement> Set Speed ... и в редакторе выражений нам нужно установить скорость на значение счетчика (power meter). Поэтому в редакторе выражений щелкните правой кнопкой мыши на счетчике и выберите 'Current Value'.

-15

Нажмите «ОК». Я думаю, что наша игра готова к еще одному тесту на этом этапе, чтобы вы могли оценить результаты трудов и увидеть, как рождается магия после нажатия F8 на клавиатуре!

Теперь вы можете нажать на значки PLUS и MINUS, чтобы увеличить / уменьшить силу броска, а так же метнуть Кена при клике правой кнопкой мыши. Так же он должен столкнуться с ящиками и землей.

Теперь нам нужно добавить к последнему событию ещё одно условие, при котором после запуска Кена будет отниматься одна жизнь. Найдите Player 1, щелкните правой кнопкой мыши и выберите Number of Lives > Subtract from Number of Lives

-16

В открывшемся редакторе выражений введите значение 1, так как мы хотим уменьшать количество жизней при запуске именно на это значение.

Это событие полностью готово.

Еще одно небольшое условие, которое мы хотели бы включить - это то, что коробки и Кен не смогут покинуть экран с правой и левой стороны.

Вставьте новое условие, щелкните правой кнопкой мыши на поле «Кен» и выберите Position > Test Position of “ken” и в диалоговом окне приглашения выберите 'Leaves from on Right'

-17

Нажмите «ОК». Наведите курсор на Кена в этой строке условий и выберите Movement > Stop.

-18

Повторите вышеуказанный шаг еще раз, но на этот раз для объекта Crate.

Как только вы это сделаете Ken и объекты Crate не смогут покинуть игровое поле слева или справа.

Мы сейчас на финальном этапе разработки нашей игры.

Нам необходимо определить, сколько ящиков действительно упало, поэтому мы создадим счёт. Итак, давайте сделаем это сейчас.

Сначала поговорим о Флагах (Flags). Флаг может быть включен или выключен. По объектам, имеющим FLAGS, мы можем определить, включен или выключен Flag в любой момент времени.

Например мы хотим подсчитать кирпичи.

Как только мы подсчитали кирпич, мы хотим отметить этот кирпич, чтобы мы знали, что он был подсчитан, в Fusion мы установили флаг. Это означает, что программа знает, когда кирпич или в нашем случае «Ящик» уже подсчитан и не будет считать его дважды.

В начале вашей игры по умолчанию все флаги отключены. Они всегда выключены, если вы не включили флаг. Чтобы обнаружить, что ящик упал, нам нужно проверить его положение Y в playarea.

Вставьте новое условие, щелкните правой кнопкой мыши на объекте Crate и выберите Position> Compare Y Position to Value

-19

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

Если вам интересно, почему 270, то смотрите ниже.

Высота рамки составляет 480 пикселей. Уступ заканчивается на отметке 270 пикселей, поэтому, если мы обнаружим, что ящик прошел точку уступа, мы можем быть уверены, что он упал.

-20

Теперь нам нужно добавить еще одно условие к текущему событию, поэтому щелкните правой кнопкой мыши по строке события (как мы это делали ранее) и выберите Добавить новое условие.

Как только вы это сделаете, снова щелкните правой кнопкой мыши на ящике и выберите Alterable Values > Flags > Is a Flag Off?

Когда появится редактор выражений, введите 0 и нажмите OK.

Вот так...

-21

Как только вы это сделаете, наведите указатель мыши на значок Crate, щелкните правой кнопкой мыши и выберите Flags > Set On. В редакторе выражений введите 0. В этой же строке наведите указатель на значок Player 1, щелкните правой кнопкой мыши и выберите Score > Add to Score, в редакторе выражений пропишите 1 и нажмите «ОК».

На этом игра готова! Если вы нажмете F8 и запустите игру сейчас, то сможете использовать все задуманные функции: устанавливать мощность броска, курсором указывать направление и стрелять по нажатию правой кнопки мыши. Цель же одна - за три попытки сбить максимальное количество ящиков. Удачи, друзья!