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

Сообщений: [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™, пока!
  • Страница 1 из 1
  • 1
Поиск:

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