On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Сообщение: 1
Зарегистрирован: 20.08.08
Репутация: 0
ссылка на сообщение  Отправлено: 20.08.08 09:57. Заголовок: Помогите!!! в WME


ПОМОГИТЕ:
Как сделать, в WME чтобы при наведении предмета на объект, герой переходил в следующую сцену ( например: шаг 1 подходим к двери: дверь не открывается. шаг 2 Подносим ключ и мы переходим на другую сцену). Буду очень благодарен.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]


moderator




Сообщение: 75
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация: 0
ссылка на сообщение  Отправлено: 20.08.08 15:35. Заголовок: molier, на наведение..


molier, на наведение мыши? Может, всё-таки по щелчку? Это и сделать проще. Достаточно обработать событие on "LeftClick"

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 2
Зарегистрирован: 20.08.08
Репутация: 0
ссылка на сообщение  Отправлено: 20.08.08 20:53. Заголовок: Dionysius, я примерн..


Dionysius, я примерно понимаю как но script выдаёт постаянно ошибку, и действие не происходит. Может поможешь со scriptом. Спосибо.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 17
Зарегистрирован: 23.10.07
Репутация: 0
ссылка на сообщение  Отправлено: 20.08.08 22:04. Заголовок: Так по щелчку или пр..


Так по щелчку или при наведении?
Если по щелчку, то "дверь" должна обрабатывать событие LeftClick

on "LeftClick"
{
Game.ChangeScene("имя сцены");
}

А если добавить еще строку actor.GoToObject(this); чтобы получилось

on "LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("имя сцены");
}

то в игре с видом от третьего лица персонаж сначала подойдет к двери, а потом будет переход в новую сцену


_________________________

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Сообщение: 76
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация: 0
ссылка на сообщение  Отправлено: 21.08.08 10:26. Заголовок: molier, учись задава..


molier, учись задавать вопросы. Правильно заданный вопрос - это уже половина ответа. Pipec тебе написал скрипт. Но ошибка у тебя может вылазить по самым разным причинам. Если всё равно не получается, то приведи здесь текст ошибки, а также текст скрипта, в котором ошибка.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 3
Зарегистрирован: 20.08.08
Репутация: 0
ссылка на сообщение  Отправлено: 21.08.08 12:26. Заголовок: on "LeftClick&#..



on "LeftClick"
{
actor.GoToObject(this);
actor.Talk("Дверь закрыта");
}

..............................................
on "LookAt"
{
actor.GoToObject(this);
actor.Talk("Надо искать ключ");
}

on "Take"
{
actor.GoToObject(this);
actor.Talk("Закрыто");
}

on "Talk"
{
actor.GoToObject(this);
actor.Talk("Закрыто");
}
................................................

А вот что написать сдесь Чтобы при наведении ключа
(взятого в другой сцене Game.TakeItem("kluc");)
Герое перешёл на другую сцену (kom_2.scene)?
Код сцены kom_2.scene ниже работает.
..................................................
on ""
{
actor.GoToObject(this);

Game.ChangeScene("scenes\kom_2\kom_2.scene");
}
........................................................


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Сообщение: 77
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация: 0
ссылка на сообщение  Отправлено: 21.08.08 13:51. Заголовок: on "kluc"..


on "kluc"

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 4
Зарегистрирован: 20.08.08
Репутация: 0
ссылка на сообщение  Отправлено: 21.08.08 20:49. Заголовок: :sm36: Большое спос..


Большое спосибо, огазывается всё гениальное - просто. Но одно но, как теперь избавится от это ключа из инвенторя. И (?) можно ли один и тотже предмет переложить с одного места в другие так, чтобы это действие повлияло на саму сцену (предположим: берём стички, подносим к газете, газета горит) ????

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 18
Зарегистрирован: 23.10.07
Репутация: 0
ссылка на сообщение  Отправлено: 22.08.08 00:01. Заголовок: Но одно но, как тепе..



 цитата:
Но одно но, как теперь избавится от это ключа из инвенторя



Цитата из переведенного манула по WME


 цитата:
Удаление из инвентаря осуществляется методом Game.DropItem():

Game.DropItem("book");



Хотя удалённый предмет больше не отображается в инвентаре, тем не менее он может быть снова использован впоследствии. Если Вы хотите удалить эту вещь из игры навсегда, воспользуйтесь методом Game.DeleteItem().





 цитата:
И (?) можно ли один и тотже предмет переложить с одного места в другие так, чтобы это действие повлияло на саму сцену (предположим: берём стички, подносим к газете, газета горит) ????



Газета должна обрабатывать событе "спичка". (on "spichka" например)
А дальше решай сам, как удобнее сделать газету горящей (в пределах обработчика события). Есть 2 способа:

1. Замена спрайта.
  • var tmp; создается временная переменная
  • tmp = Scene.GetNode(this); в эту переменную сохраняется ссылка на объект "газета"
  • tmp.SetSprite("путь к спрайту, содержащему анимированное изображение горящей газеты");

    2. Активизация скрытого изображения (более фэн-шуйный вариант)

    В SceneEditor'е создаешь сразу два объекта - негорящую и горящую газету. Они будут располагаться в одном месте друг над другом. Допустим обычная газета будет называться gazeta, а горящая - gorgazeta. В перечне объектов сцены в SceneEditor'е снимаешь птичку напротив объекта gorgazeta. Теперь он не отображается в сцене, но присутствует в ней.

    Теперь обрабатываем событие spichka в негорящей газете

    on "spichka"
    {
  • var tmp1;
  • var tmp2;
  • tmp1 = Scene.GetNode("gazeta");
  • tmp2 = Scene.GetNode("gorgazeta");
  • tmp2.Active = true;
  • tmp1.Active = false;
    }

    Здесь мы получили ссылки на два объекта сцены, сделали видимым горящую газету и спрятали обычную.

    Этот способ лучше еще тем, что не подтормаживает игру. Например, если у тебя в сцене есть часы, которые тикают, причем звук тканья привязан к спрайту часов, то при использовании первого варианта будет отчетлво слышен сбой ритма.

    Если есть желание, можешь еще посмотреть скрипты drawer.script и open_drawer.script из wme_demo. В этих скриптах по этому же принципу реализовано открывание и закрывание выдвижного ящика стола.

    Если же тебе надо совместить два объекта инвентаря - спичку и газету и получить горящую газету, нужно делать так, как сделано в скрипте game.script в wme_demo:

    В этом скрипте происходит глобальная обработка события LeftClick

    on "LeftClick"
    {
  • var ActObj = Game.ActiveObject; Получаем ссылку на объект, над который щелкнули мышкой
  • if(ActObj!=null) Если не щелкнули в пустом месте
  • {
  • if(ActObj.Type=="item" && Game.SelectedItem==null) смотри не щелкнули ли на предмете инвентаря
  • {
  • Game.SelectedItem = ActObj; если щелкнули и при этом еще ни один предмет из инвентаря не выбран, то выбираем объект
  • }
  • else if(Game.SelectedItem != null && Game.SelectedItem!=ActObj) иначе, если предмет из инвентаря уже выбран и щелкнули на другом предмете инвентаря
  • {
  • var Item = Game.SelectedItem; проверяем, может ли вновь выбранный предмет взаимодействовать с предыдущим
  • if(ActObj.CanHandleEvent(Item.Name)) ActObj.ApplyEvent(Item.Name); если да, то совмещаем предметы
  • else actor.Talk("I can't use these things together."); иначе, говорим что предметы не совместимы
  • }
  • }
    }

    Если ты хочешь, чтобы гзета загоралась как при совмещении спички и газеты, так и при совмещении газеты и спички, то газета должна обрабатывать событие от спички, а спичка событие от газеты. А для отображения горящей газеты в инвентаре нужно просто убрать от туда программно и газету и спичку, а добавить горящую газету.

  • _________________________

    Спасибо: 0 
    ПрофильЦитата Ответить
    Ответ:
    1 2 3 4 5 6 7 8 9
    большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

    показывать это сообщение только модераторам
    не делать ссылки активными
    Имя, пароль:      зарегистрироваться    
    Тему читают:
    - участник сейчас на форуме
    - участник вне форума
    Все даты в формате GMT  3 час. Хитов сегодня: 0
    Права: смайлы да, картинки да, шрифты да, голосования нет
    аватары да, автозамена ссылок вкл, премодерация откл, правка нет