Суббота, 23 Ноября 2024, 03:11

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Нужна помощь по написанию скрипта для движения по лестнице
ZazazaДата: Вторник, 15 Ноября 2016, 10:52 | Сообщение # 1
был не раз
Сейчас нет на сайте
Нужно осуществить движение по боковой наклонной лестнице, заранее спасибо
http://s1.uploadpics.ru/images/Zko1A1ZQ3W.jpg
Картинка описывающая ситуацию)


Сообщение отредактировал Zazaza - Вторник, 15 Ноября 2016, 10:55
ReanДата: Вторник, 15 Ноября 2016, 12:19 | Сообщение # 2
участник
Сейчас нет на сайте
Zazaza, а каким образом будет определятся "идти прямо" или "идти наверх"?

Наипростейшее решение видится таким: "кидаем" два невидимых триггера по обеим концам лестницы и при пересечении, например, с нижним триггером, если игрок нажал "UP + LEFT", то ставим флаг isOnLeftStairs (у нас же лестницы будут не только в одну сторону, на карте могут быть и наоборот). И уже в Step персонажа обрабатываем движение при флаге isOnLeftStairs (или флаге isOnRightStairs), меняя анимацию на анимацию подъёма/спуска и увеличивая/уменьшая координату y.

Это если решение с ходу. Если подумать, то, возможно, где-то можно упростить/что-то добавить. Но общая идея такова.

Добавлено: забыл сказать - при повторном пересечении с одним из триггеров, флаги (isOn..Stairs) убираем, чтобы игрок мог двигаться дальше прямо.


Сообщение отредактировал Rean - Вторник, 15 Ноября 2016, 12:21
ZazazaДата: Вторник, 15 Ноября 2016, 13:07 | Сообщение # 3
был не раз
Сейчас нет на сайте
Up+left, up +right -вверх по лестнице, left , right - мимо неё

Сообщение отредактировал Zazaza - Вторник, 15 Ноября 2016, 13:08
ILopeДата: Вторник, 15 Ноября 2016, 16:44 | Сообщение # 4
был не раз
Сейчас нет на сайте
Zazaza, Вообщем смотри, давай создадим логику движения по лестнице. Создадим объект в начале лестницы куда он должен подняться (невидимый)
В событии столкновения с этим объектом пишем:
Код
if (keyboard_check_pressed(vk_up) && keyboard_check_pressed(vk_left)) or (keyboard_check_pressed(vk_up) && keyboard_check_pressed(vk_right))
{
//Здесь можно сделать проверку на спрайт или image_xcale
sprite_index = s_hero_to_up; //Делаем анимацию первого подъёма
x = object_up.x; // Ставим персонажа в координатах фиктивного объекта на лестницу
y = object_up.y;
}
else
{
//Тут проходим мимо нашей лестницы
if (keyboard_check_pressed(vk_left))
{
x -= 4;
}
if (keyboard_check_pressed(vk_right))
{
x += 4;
}


Извиняюсь, просто сейчас нет GMS под рукой, но возможно он поможет)

Есть ещё вариант с событием столкновения с лестницей в конкретных координатах или регионе, и делать подъём путём нажатия двух кнопок Up + Left / Right, если же не нажаты эти кнопки то просто он пойдёт дальше.


В разработке:
AddApp - Контроль Ваших Приложений (Администрирование)


Сообщение отредактировал ILope - Вторник, 15 Ноября 2016, 16:52
ZazazaДата: Вторник, 15 Ноября 2016, 22:54 | Сообщение # 5
был не раз
Сейчас нет на сайте
Спасибо
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг