Нужна помощь по написанию скрипта для движения по лестнице
|
|
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 |
был не раз
Сейчас нет на сайте
| Спасибо
|
|
| |