Форум » Общие вопросы по WME » 2D квест без спрайтов. Как? » Ответить

2D квест без спрайтов. Как?

Wolshebnik: Здравствуйте. Возникла такая задача - нужно реализовать перемещение по сценам и сбор предметов лишь сменой фотографий. То есть по нажатию на дверь показывается новая фотография следующей комнаты. Но с этим всё просто. А вот как сделать, чтобы по нажатию на ручку, лежащую на столе, показывалась новая фотка, где ручки на столе уже нет. Я не могу использовать спрайты. А если делать каждую фотку отдельной сценой, то при переходе от одной к другой будет черный экран. Или это можно убрать?

Ответов - 6

Maxim: Делается так on "LeftClick" { Game.Interactive = false; Game.RemoveSprite("путь к файлу"); Game.Interactive = true; }

Pipec: На самом деле не совсем так. По умолчанию каждая сцена содержит объект (entity) "background". Вот его спрайт и надо менять. Допустим чтобы сделать ручку активной ты создал region entity "ruchka". К этому объекту прикрепляем такой скрипт: on "LeftClick" { var tmp=Scene.GetNode("background"); tmp.SetSprite("путь к файлу с новой картинкой"); tmp=Scene.GetNode("ruchka"); tmp.Active=false; tmp.Interactive=false; }

Pipec: Везде где идут ссылки на объект "ruchka" можно использовать предопределение this, но для большего понимания кода "со временем" лучше использовать реальные имена объектов


Wolshebnik: Спасибо за советы, но это не совсем то. :( Ведь мне по сути нужно переходить с одной сцены на другую, но без черной вспышки экрана.

Pipec: ChangeScene(Filename, FadeOut, FadeIn) Загружает файл сцены. Параметры Filename Имя файла сцены. FadeOut Указывает, должна ли предыдущая сцена плавно раствориться (необязательный параметр, по умолчанию = true) FadeIn Указывает, должна ли новая сцена плавно проясниться (необязательный параметр, по умолчанию = true) Game.ChangeScene("сцена", false, false);

Wolshebnik: Pipec Спасибо большое!



полная версия страницы