Показать сообщение отдельно
Старый 10.03.2014, 12:00
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Я не знаю конечно, как именно у Вас сделаны эти МС..., что в них.. Голый текст на экране и кнопки, или там вообще анимации. Конечно "крутой" разработчик попытался бы сделать универсальный движок текстовых квестов с возможностью задавать весь сценарий во внешнем файле (XML, например).
Каждому Диалогу присваивается идентификатор, Диалог содержит вводный текст и варианты Ответов. К этим вариантам указаны идентификаторы Диалогов для перехода (по вашей схеме: в МС3 ответ BUT4 ведет к MC4, a BUT3 ведет к МС5. В сценарий каждого Диалога можно также добавить идентификатор фонового изображения или мувиклипа, хранящегося в библиотеке, или даже адрес подгружаемого. Для мувиклипов (или swf-файлов) можно также указывать кадр — это позволит делать ветвящиеся диалоги с одним клипом на фоне, не заменяя объект мувиклипа на фоне (локацию) при каждой фразе и ответе, когда это не нужно.
Соответственно в коде движка был бы класс сценки, или диалога, умеющий по своей ноде XML составить "кадр". Ну, это все как я себе представляю, не зная Ваш проект на самом деле. То есть абстрактно))
Код:
<dialogue id="D003">
	<background mc="MC3" frame="1" />
	<quest id="Q003">Ты руки помыл?</quest>
	<answer id="A" target="D004">Ага. Вода только ледяная, брр..</answer>
	<answer id="B" target="D005">Нет. Вода же ледяная!</answer>
</dialogue>
<dialogue id="D004">
	<background mc="MC3" frame="14" />
	<quest id="Q004">Тогда садись за стол. Что будешь пить?</quest>
	<answer id="A" target="D006">Водку со льдом!</answer>
	<answer id="B" target="D007">Ананасовый сок!</answer>
</dialogue>
<dialogue id="D005">
	<background mc="MC3" frame="6" />
	<quest id="Q004">Найди кипятильник и согрей воду.</quest>
	<answer id="A" target="D003">Да я уж как-нибудь так помою.. холодненькой</answer>
	<answer id="B" target="D008">ОК. Где он лежит? В кладовке?</answer>
	<answer id="С" target="D004">Да пошутил я. Вот, руки чистые!</answer>
</dialogue>
Идентификаторы вопросов и ответов помогут также сохранить Историю, то есть полноценный сейв игры со всеми сделанными выборами игрока.
__________________
Reality.getBounds(this);