- Сообщений: 3147
- Спасибо получено: 2651
Зельда-скроллинг
Информация:
Автор: DeadElf79
Версия скрипта: 1.4
Версия мейкера для использования: VX Ace
Условия использования: используйте как хотите, меня можно не указывать.
Описание:
Скрипт добавляет скроллинг карты как в зельде: карта разделяется на несколько независимых "экранов" (персонаж не всегда находится в центрне экрана), при переходе между "экранами" игровой экран смещается. Кто играл в первую легенду о зельде, тот сразу поймет, о чем этот скрипт.
Примечание:
Знаю, что в какой-то игре видел уже такой скрипт, но хоть убейте, не вспомню название. Помню, что это была третья часть (вроде как) и там была доработанная графика из ртп. Поэтому написал своё с нуля. Прошу любить и использовать без указания автора.
Установка:
1. установите скрипт как обычно
2. в note карты, на которой вы хотите использовать, добавьте слово zelda на отдельной строке.
3. убедитесь, что ваша карта имеет следующие размеры:
- по ширине карта должна быть кратна ширине графики игры, разделенной на 32 (640/32 = 20 тайлов)
- по высоте карта должна быть кратна высоте графики игры, разделенной на 32 (480/32 = 15 тайлов)
Например: для создания карты с двумя "экранами" по ширине и двумя по высоте для графики игры размером 640х480 пикселей задайте ей размер 40х30 тайлов.
Код:
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Писал, не надеясь, что всё будет работать, поэтому, когда всё-таки заработало, я так обрадовался, что забыл поправить.
Еще из обнаруженного:
У скрипта есть некий баг при работе с картами, имеющими параметр "Scroll type: Both Loop", но я пока не наю, как поправить.
Так что я просто поправлю чтение параметра карты и оставлю дальнейшие апдейты на "когда припечёт".
UPD: как раз залил код, наслаждайтесь.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Плюс если карта не ограничена, прокрутка продолжается и персонаж просто исчезает за пределами камеры.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
если найдется человек, который знает, как заморозить игру на время прокрутки - буду рад. у меня тут есть только одна идея, как это сделать, но придется перекопать много своих старых проектов, чтобы найти похожий скрипт. займусь как будет время.Paranoid пишет: Скрипт не стопорит игру при переходе, что немного смущает.
да, это баг, я о нем писал в посте выше. я пока не знаю, как это исправлять, видимо, придется пихать море условий.Paranoid пишет: Плюс если карта не ограничена, прокрутка продолжается и персонаж просто исчезает за пределами камеры.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
forums.rpgmakerweb.com/index.php?/topic/...lly-cohesive-camera/
www.rpgmakercentral.com/topic/22712-zelda-scrolling/
Можно просто запустить какое-нибудь событие, на время прокрутки.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Только здесь происходит перемещение игрока.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Благодаря ссылкам от Параноида (за что ему отдельное спасибо), пересмотрел несколько вариантов решений и понял, что два из них бесполезны, а последнее я посмотрел в гифке, почитал мудренный код и решил не использовать.
Но решение с использованием события во время прокрутки меня натолкнуло на мысль использовать нечто подобное. И я использовал скрипты, которые переключают состояние ожидания на вкл/выкл во время скроллинга. Также саму задержку игрока на месте на время скролла я вынес в настройки, так что можно ее выключить, если кому-то она не нужна.
UPD: Исправил еще одну ошибку, которую смог получить лишь после того, как начал перемещаться с карты на карту - при перемещении на зельдо-карту неправильно выставлялась позиция карты, отчего происходило смещение. Вот, кстати, может поэтому с картами со Scroll Type: Both была такая ошибка. Проверю, когда будет время.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
UPD: Пофиксил ту же функцию по координатам.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Собственно возникла небольшая проблема со скриптом при использовании пиксельного перемещения от Виктора. В право и вниз скроллит нормально. А вот влево и вверх персонаж скроллится еще находясь на клетке предыдущего экрана, то бишь его не видно на новом экране.
Еще хотелось бы иметь опцию отключения графики ивентов. Типа того как было в зельде, чтобы не видеть врагов пока не закончится скролл. Ну и скриптовую команду для проверки находится игрок на одном экране с ивентом или нет. Ты уже писал выше что такая команда уже есть, но хотелось бы иметь возможность совершать проверку и внутри ивента. Чтобы, например, ивент не видел тебя пока ты не пройдешь на его экран.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
