Loko™ |
Дата: Среда, 14.11.2012, 13:34 | Сообщение # 1 |
Сообщений: [146]
|
Снежный будничный день октября. Я, как всегда, сижу с чаем перед компьютером, слушаю Shakir'у и думаю о предстоящем вечере. Опять коротаю денек, результат которого вы читаете прямо сейчас, а ведь скоро сессия, зачеты, злые преподы... эх..вот это будет легендарное приключение!
Теперь ближе к делу.
Краткое содержание урока: 1. Мы научим героя ходить как по земле, так и по потолку 2. Сделаем "правильную" инверсию управления 3. Настроим зеркальное отображение героя, чтобы он не плутал макушкой по верхней части уровня.
Гоу гоу гоу!
Нам понадобиться сам герой с поведением "Platform". Если вы не знаете, как его создать или придать герою нужное поведение, читаем статью "Создание 2D платформера а-ля Ghost Quest".
Дадим герою новую переменную: Выделяем героя – Properties – Private Variables – Add/Edit – зеленый плюс – в поле Name пишем angle – OK – Done Сразу же добавим эффект отзеркаливания: Выделяем героя – Properties – Effects – Add – выбираем из списка Flip Vertical – OK
Добавим клавиатуру и мышь: Insert an object – Mouse & Keyboard
Переходим в редактор событий (Event Sheet Editor) Сделаем так, чтобы по нажатию клавиши вверх изменялась гравитация, и героя притягивал манящий потолок.
События: 1. Insert event – Hero (это герой) – переходим во вкладку Platform – Is on ground – Finish 2. Insert event – MouseKeyboard – On key pressed – Up arrow - Finish
Действия: 1. New action – Hero – переходим во вкладку Platform – Set gravity direction – Up – Finish 2. New action – Hero – переходим во вкладку Platform – Set invert input – Inverted – Finish 3. New action – Hero – Set value – в Private variable выбираем angle, в Value пишем 1 – Finish
В событии №1 мы поставили условие, что герой может изменить гравитацию только тогда, когда он находится на земле. Если убрать этот пункт, то герой сможет менять гравитацию в любой момент, когда игроку вздумается (на земле, в воздухе). Во втором событии мы назначаем клавишу смены гравитации. В действии №1 мы, собственно, изменяем направление гравитации. Во втором действии изменяем инверсию управления. Если этого не делать, то при сменённой гравитации (т.е. когда герой на потолке), по нажатию клавиши налево, герой будет идти вправо, и наоборот. Мы же сделали так, что и на земле, и на потолке кнопки налево и направо отвечают за одно и то же направление. В третьем действии мы установили переменной единицу, что означает: если 1 – герой на потолке, если 0 – герой на земле.
Теперь сделаем смену гравитации на нормальную.
События: 1. Insert event – Hero – переходим во вкладку Platform – Is on ground – Finish 2. Insert event – MouseKeyboard – On key pressed – Down arrow – Finish
Действия: 1. New action – Hero – переходим во вкладку Platform – Set gravity direction –Down – Finish 2. New action – Hero – переходим во вкладку Platform – Set invert input – Normal – Finish 3. New action – Hero – Set value – в Private variable выбираем angle, в Value пишем 0 – Finish
Здесь события и действия почти аналогичны предыдущим: Событие 1 – смена гравитации срабатывает только тогда, когда герой на земле Событие 2 – назначаем кнопку смены гравитации (стрелка вниз) Действие 1 – изменяем гравитацию на обычную, земную Действие 2 – возвращаем стандартную инверсию управления Действие 3 – возвращаем переменной значение 0.
Далее сделаем зеркальное отображение героя при разных гравитациях.
Событие: Insert event – Hero – Compare a private variable – angle, Equal to, Value = 1 – Finish
Действие: New action – Hero – переходим во вкладку Flip Vertical – Activate Flip Vertical – Finish
Здесь событие означает: всегда, когда переменная angle = 1 А действие: активировать эффект Flip Vertical (отразить по вертикали)
Событие: Insert event – Hero – Compare a private variable – angle, Equal to, Value = 0 – Finish
Действие: New action – Hero – переходим во вкладку Flip Vertical – Deactivate Flip Vertical – Finish
Аналогично предыдущему событию, только здесь деактивация эффекта Flip Vertical.
Все готово!
Кстати, такая техника смены гравитации была использована в игре r[ ]x, исходник которой вы можете скачать по ссылке: http://make-games.ru/forum/110-3382-1
Проверяйте, отписывайтесь, рассказывайте, как живете. С вами был Loko™, пока!
|
|
| |