| 
| 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™, пока!
 |  |  |  |  |