Второстепенный персонаж на сцене
|
|
P1LL0TT | Дата: Понедельник, 27.12.2010, 01:58 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 53
Награды: 3
Репутация: 8
Статус: Offline
Награды
| На сцене имеется ГГ и ещё один персонаж. Потом ГГ с этим персом будут ещё не раз встречаться. Вопрос: как организовать диалог между ними по клику на этом персонаже? Сначала бедного перса вообще игнорировали, потом поменял в перс.actor параметр INTERACTIVE на TRUE. А что делать дальше? Была мысль написать в перс.script что-то вроде on "LeftClick" {...}, но тогда получается, что нужно для каждого такого диалога отдельного персонажа создавать, а их будет очень много
И это лучшее не свете колдовство, Ликует солнце на лезвии гребня, И это все, и больше нету ничего - Есть только небо, вечное небо.
БЛОГ МОЕЙ ИГРЫ: http://dragon-3.blogspot.com/
|
|
|
|
Molier | Дата: Понедельник, 27.12.2010, 08:11 | Сообщение # 2 |
Группа: Администраторы
Сообщений: 332
| Посмотри тут урок про диалоги
Не ошибается лишь тот, кто не чего не делает.
|
|
|
|
P1LL0TT | Дата: Понедельник, 27.12.2010, 13:44 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 53
Награды: 3
Репутация: 8
Статус: Offline
Награды
| Спасибо, хороший урок ответил на многие вопросы, но всё же... Проблема в том, что у меня не спрайт, а actor, и я не могу просто взять его скрипт и написать там on "LeftClick", потому что в другой сцене с этим же персонажем запустится этот же диалог... Сам диалог, наверное, нужно писать в скрипте сцены. Но тогда возникает проблема, как скрипту персонажа сообщить сцене что на него кликнули? я пробовал объявить глобальную переменную и при щелчке на персе изменять её значение, потом на сцене проверять, изменилась она или нет. И, если изменилась, начинать с ним диалог... Но это тоже отпало, потому что scene_init.script выполняется только один раз, а к тому моменту как мы кликнули на персе, он уже завершился...
И это лучшее не свете колдовство, Ликует солнце на лезвии гребня, И это все, и больше нету ничего - Есть только небо, вечное небо.
БЛОГ МОЕЙ ИГРЫ: http://dragon-3.blogspot.com/
|
|
|
|
AmneziA | Дата: Понедельник, 27.12.2010, 20:29 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
| на счет глобальных: ты можешь объявить ее в гейм.скрипт и когда нужно ссылаться на нее. я думаю она будет изменяться и проверяться вполне адекватно. так что, таким образом должно получится организовать диалоги
Мой канал о моделизме: https://goo.gl/LgXUK9
На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
|
|
|
|
P1LL0TT | Дата: Вторник, 28.12.2010, 19:01 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 53
Награды: 3
Репутация: 8
Статус: Offline
Награды
| спасибо, щас попробую Добавлено (28.12.2010, 19:01) --------------------------------------------- AmneziA, увы, не сработало сцена проверяет значение переменной только один раз-при загрузке. Однако, нашёл более красивое решение) В скрипте, относящемся к персонажу написал: Code on "LeftClick" { Scene.ApplyEvent ("PersonClick"); } а в сцене: Code on "PersonClick" { actor.Talk ("Всё работает!"); } Может, пригодится кому...
И это лучшее не свете колдовство, Ликует солнце на лезвии гребня, И это все, и больше нету ничего - Есть только небо, вечное небо.
БЛОГ МОЕЙ ИГРЫ: http://dragon-3.blogspot.com/
Сообщение отредактировал P1LL0TT - Вторник, 28.12.2010, 20:27 |
|
|
|
AmneziA | Дата: Вторник, 28.12.2010, 20:45 | Сообщение # 6 |
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
| видимо я не совсем понял суть проблемы.. Хорошее решение спасибо, что поделился))
Мой канал о моделизме: https://goo.gl/LgXUK9
На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
|
|
|
|
Parovoz | Дата: Вторник, 25.01.2011, 23:21 | Сообщение # 7 |
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Награды
| Спасибо за информацию, P1LL0TT, пригодилось! А как сделать, чтобы перед тем, как сказать персонаж подошёл ко второму персонажу?
|
|
|
|
P1LL0TT | Дата: Среда, 26.01.2011, 00:28 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 53
Награды: 3
Репутация: 8
Статус: Offline
Награды
| Parovoz, В скрипте, относящемся к персонажу: Code global PersonPos; // запоминает координаты on "LeftClick" { PersonPos.X=this.X; PersonPos.Y=this.Y; Scene.ApplyEvent ("PersonClick"); } В скрипте сцены: Code global PersonPos; //обращение к глобальной переменной on "PersonClick" { actor.GoTo (PersonPos.X , PersonPos.Y); actor.Talk ("Всё работает!"); } Как-то так =)
И это лучшее не свете колдовство, Ликует солнце на лезвии гребня, И это все, и больше нету ничего - Есть только небо, вечное небо.
БЛОГ МОЕЙ ИГРЫ: http://dragon-3.blogspot.com/
|
|
|
|
Parovoz | Дата: Среда, 26.01.2011, 11:53 | Сообщение # 9 |
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Награды
| Спасибо, P1LL0TT! )
|
|
|
|
P1LL0TT | Дата: Среда, 26.01.2011, 17:33 | Сообщение # 10 |
Группа: Проверенные
Сообщений: 53
Награды: 3
Репутация: 8
Статус: Offline
Награды
| Parovoz, обращайся! Вообще, ApplyEvent очень мощная штука, у меня на ней головоломка, весьма удачная на мой взгляд, работает) Скоро выложу пролог своей игры
И это лучшее не свете колдовство, Ликует солнце на лезвии гребня, И это все, и больше нету ничего - Есть только небо, вечное небо.
БЛОГ МОЕЙ ИГРЫ: http://dragon-3.blogspot.com/
|
|
|
|
|