Создать игру, создание игр, конструктора игр, игровые движки, разработка игр, сделать игру
Приветствую Вас Гость · Вход · Регистрация  ·  Новые сообщения · Участники · Правила · Поиск · RSS
  • Страница 1 из 1
  • 1
[Статья] Учим героя подводному плаванию
Loko™ Дата: Вторник, 13.11.2012, 10:13 | Сообщение # 1
Просмотр профиля: Loko™

Сообщений: [146]
Всем привет! На волне Loko™ и это очередной урок по Construct Classic.
Сегодня мы будем учить героя подводному плаванию на манер Mario:
Если герой находится в воде, то по нажатию определенной клавиши он движется вверх на расстояние прыжка. При этом скорость падения в воде ниже, чем на суше.

Поехали.

Для начала, нам понадобиться сама вода, поэтому рисуем полупрозрачный спрайт нужного размера:
Insert an object – Sprite – Для своего случая, я выбрал инструмент заливка, и, чтобы уменьшить прозрачность, изменил значение в Alpha 1 с 255 на 150 – Сохраняем.
Сразу переименуем его:
Выделяем только что созданный спрайт – Properties –в поле Name пишем Water

Герой с поведением "Platform" должен быть у вас заранее, если его нет, и вы не знаете, как его сделать, читаем статью Создание 2D платформера а-ля Ghost Quest.
Также герою необходимо предоставить новую переменную.
Выделяем героя – Properties – Private Variables – Add/Edit – Зеленый плюс – в поле Name пишем Water – OK - Done

Добавляем клавиатуру и мышь:
Insert an object – Mouse & Keyboard

Подготовительная часть закончена, переходим в редактор событий (Event Sheet Editor).
Первое событие состоит в том, что если герой находится в воде, то изменяются его показатели, такие, как скорость падения, сила прыжка.

Событие:
Insert event – bazis (это мой герой, выберите своего) – Is overlapping another object – Pick an object – Water - Finish

Действия:
1. New action – bazis – переходим во вкладку Platform – Set jump strength – пишем значение 400 – Finish
2. New action – bazis – переходим во вкладку Platform – Set gravity – пишем значение 600 – Finish
3. New action – bazis – Set value – в Private variable выбираем Water, в Value прописываем 1 – Finish



В первом действии мы увеличили силу прыжка до 400, чтобы в воде герой по нажатию клавиши прыжка двигался вверх с чуть большей дальностью, чем обычно.
Второе действие – уменьшение гравитации, благодаря чему, герой падает с меньшей скоростью.
В третьем действии мы изменили переменную, которая означает следующее: если 1 – герой в воде, если 0 – герой не в воде.

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

Подсобытие 1:
Правой кнопкой мыши на только что созданное событие – Insert sub-event – MouseKeyboard – Key is down? – выбираем из списка Down arrow – Finish

Действие для подсобытия 1:
New action – bazis – переходим во вкладку Platform – Set maximum fall speed – пишем значение 1000 – Finish
Здесь мы сделали так, что по нажатию клавиши вниз, герой ускорял падение.

Подсобытие 2:
Правой кнопкой мыши на только что созданное событие – Insert sub-event – MouseKeyboard – Key is down? – выбираем из списка Down arrow – Finish

Действие для подсобытия 2:
New action – bazis – переходим во вкладку Platform – Set maximum fall speed – пишем значение 180 – Finish
Теперь это событие нужно сделать противоположным, т.е. щелкаем правой кнопкой мыши на подсобытии 2 – Invert condition
А здесь мы сделали так, что если клавиша вниз не нажата (отпущена), ускорение героя возвращается к стандартному.

Подсобытие 3:
Правой кнопкой мыши на только что созданное событие – Insert sub-event – MouseKeyboard –On key pressed– выбираем из списка Z (это клавиша прыжка, если у вас другая – выберите нужную) – Finish

Действие для подсобытия 3:
New action – bazis – переходим во вкладку Platform – Jump
Этим подсобытием мы сделали возможность "прыгать" в воде находясь в "воздухе".



Итак, подводное плавание мы настроили, теперь нужно реализовать сброс всех настроек, при выходе героя на сушу.

События:
1. bazis – Compare a private variable – из Private variable выбираем Water, из Comparison выбираем Equal to, в Value прописываем 1 – Finish
2. Щелкаем правой кнопкой мыши на только что созданном событии – Insert new condition – bazis – Is overlapping another object – Pick an object – Water – Finish
Сделаем событие №2 противоположным, щелкаем правой кнопкой по нему – Invert condition

Действия:
1. New action – bazis – Set value – выбираем Water и прописываем значение 0 – Finish
2. New action – bazis – переходим во вкладку Platform – Set jump strength – пишем значение 325 – Finish
3. New action – bazis – переходим во вкладку Platform – Set gravity – пишем значение 1500 – Finish
4. New action – bazis – переходим во вкладку Platform – Set maximum fall speed – пишем значение 1000 – Finish



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

Пару слов о переменной Water
В данном примере можно спокойно обойтись и без этой переменной, и, если ее убрать, то все будет прекрасно работать. Тогда зачем же она?
Эта переменная нужна, если вы будете вводить сразу несколько систем, основанных на переменных. К примеру, введете систему виса на крюке/платформе из моей прошлой статьи. Соответственно, Water предотвращает нежелательные конфликты в поведении героя.

Вот и все готово, проверяем, ставим лайк, подписываемся на канал, с вами был Loko™, пока!


Сообщение отредактировал: Loko™ - Вторник, 13.11.2012, 11:50
ZiP Дата: Вторник, 13.11.2012, 14:28 | Сообщение # 2
( περιμετρ )
Просмотр профиля: ZiP

Сообщений: [887]
Пишешь хорошие уроки по Construct. Так держать, продолжай в том же духе. smile

☼Настройка профиля|↕Написать жалобу на пользователя|▲Правила сайта|░мои темы
BSC Hard|Death Jeep|WSC B&W|Моб.платформер|BSC Hard 2|Последняя Миссия|Christmas Story
░▒▓ Z7NV ▓▒░
  • Страница 1 из 1
  • 1
Поиск:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр