Речь персонажа
Molier Дата: Воскресенье, 19.12.2010, 22:23 | Сообщение # 1
Группа: Администраторы
Сообщений: 332
Вопрос в седующем, актер произносит фразу, она появляется сверху,над актером, а как сделать, чтобы она была внизу экрана.
Не ошибается лишь тот, кто не чего не делает.
AmneziA Дата: Среда, 22.12.2010, 19:49 | Сообщение # 2
Группа: Модераторы
Сообщений: 355
Награды:
3
Репутация:
15
Статус: Offline
Награды
искал одно, нашел другое))) нашел как регулировать положение caption при наведении курсора на интерактивный объект и при использовании предмета. еще немного разобрался с отображением инвентаря))
будем искать дальше
Мой канал о моделизме: https://goo.gl/LgXUK9 На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
AmneziA Дата: Среда, 22.12.2010, 20:27 | Сообщение # 3
Группа: Модераторы
Сообщений: 355
Награды:
3
Репутация:
15
Статус: Offline
Награды
есть одинспособ решения этой проблемы! (довольно "топорный") не знаю будут ли с ним сложности в дальнейшем, но пока все работает!! суть такова: создаем еще одного невидимого актера (назовем его "reply"). и теперь всегда когда нам нужно отобразить речь ГГ сылаемся на reply!
если непонятно - объясню подробнее
Мой канал о моделизме: https://goo.gl/LgXUK9 На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
Molier Дата: Среда, 22.12.2010, 21:33 | Сообщение # 4
Группа: Администраторы
Сообщений: 332
Quote (AmneziA )
если непонятно - объясню подробнее
если не трудно, плиZ.
Не ошибается лишь тот, кто не чего не делает.
AmneziA Дата: Среда, 22.12.2010, 22:30 | Сообщение # 5
Группа: Модераторы
Сообщений: 355
Награды:
3
Репутация:
15
Статус: Offline
Награды
значит так. нам нужен невидимый актер. типа такого: актер для игры от 1го лица прописываем в base.inc: global (название нового актера); прописываем в game.script: (название нового актера) = Game.LoadActor("путь к новому актеру");
далее в скрипте, который прилагается к актеру вводим его местоположение.
теперь, когда нужно отобразить речь ГГ указываем имя нового актера. например:
on "LookAt" { (название нового актера).Talk("Похоже на ящик в котором обычно хранят инструменты"); }
вроде ничего не упустил))
Мой канал о моделизме: https://goo.gl/LgXUK9 На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
Molier Дата: Четверг, 23.12.2010, 11:16 | Сообщение # 6
Группа: Администраторы
Сообщений: 332
AmneziA , спасибо, буду пробовать.
Не ошибается лишь тот, кто не чего не делает.
AmneziA Дата: Четверг, 23.12.2010, 19:27 | Сообщение # 7
Группа: Модераторы
Сообщений: 355
Награды:
3
Репутация:
15
Статус: Offline
Награды
обращайся если что))
Мой канал о моделизме: https://goo.gl/LgXUK9 На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
P1LL0TT Дата: Воскресенье, 26.12.2010, 21:28 | Сообщение # 8
Группа: Проверенные
Сообщений: 53
Награды:
3
Репутация:
8
Статус: Offline
Награды
у меня была такая же проблема, долго искал решение, нашёл суть в том, что надо переопределить стандартный метод Talk Вот как это сделано у меня:
global WinSubtitles;
var Portrait;
//var Border; -если нужна рамочка вокруг окошка субтитров
// создаём окошко для субтитров if(WinSubtitles==null) { WinSubtitles = Game.CreateWindow("subtitles_window"); Portrait = WinSubtitles.CreateStatic("speaker_portrait"); //Border = WinSubtitles.CreateStatic("text_border");
// настройки положения этого окна WinSubtitles.X = 0; WinSubtitles.Y = Game.ScreenHeight-127; WinSubtitles.Width = Game.ScreenWidth; WinSubtitles.Height = 127; WinSubtitles.Visible = false;
// настраиваем появление портрета говорящего Portrait.X = 0; Portrait.Y = 0;
// настраиваем границу //Border.X = 200; //Border.Y = 0; //Border.SetImage("interface\textborder.png");
} else WinSubtitles.GetControl("speaker_name");
// позиция текста this.SubtitlesPosRelative = false; this.SubtitlesPosX =(Game.ScreenWidth/2)-12; this.SubtitlesPosY = Game.ScreenHeight -(WinSubtitles.Height/2)-10; this.SubtitlesWidth = Game.ScreenWidth - 300;
// Собственно, переопределяем метод method Talk(Text, SoundFilename, Duration, TalkStances, TextAlignment) { Game.Interactive = false; Portrait.SetImage("actors/Nika/nika_win.png"); //путь к портрету WinSubtitles.Visible = true; this.SetFont("fonts/a_BodoniNova.font"); this.Talk(Text, SoundFilename, Duration, TalkStances, 0); WinSubtitles.Visible = false; Game.Interactive = true; }
P.S. Сорри, что меня долго не было
И это лучшее не свете колдовство, Ликует солнце на лезвии гребня, И это все, и больше нету ничего - Есть только небо, вечное небо. БЛОГ МОЕЙ ИГРЫ: http://dragon-3.blogspot.com/
Сообщение отредактировал P1LL0TT - Воскресенье, 26.12.2010, 21:29
AmneziA Дата: Воскресенье, 26.12.2010, 23:17 | Сообщение # 9
Группа: Модераторы
Сообщений: 355
Награды:
3
Репутация:
15
Статус: Offline
Награды
круто! вот спасибо! это как раз то что нужно!
Мой канал о моделизме: https://goo.gl/LgXUK9 На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
P1LL0TT Дата: Вторник, 28.12.2010, 22:38 | Сообщение # 10
Группа: Проверенные
Сообщений: 53
Награды:
3
Репутация:
8
Статус: Offline
Награды
Обнаружил небольшой баг в скрипте) Если перс выгружается из игры, а потом загружается снова, то игра пишет ScriptRuntime Error (или что-то подобное) Что бы её исправить, нужно изменить в скрипте строчку на =)
А, кстати, я нигде не написал... Тем кто не понял, это всё нужно вставить в скрипт персонажа
И это лучшее не свете колдовство, Ликует солнце на лезвии гребня, И это все, и больше нету ничего - Есть только небо, вечное небо. БЛОГ МОЕЙ ИГРЫ: http://dragon-3.blogspot.com/