Понедельник, 29.04.2024, 21:08
 
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории каталога
Техническое задание [3]
Техническое задание содержит цели, описание направления разработки, ожидаемые результаты, рекомендации, критерии.
Технический проект [2]
Содержит способы достижения целей поставленных в техническом задании. Самая объёмная документация по проекту. Фактически - это готовое решение поставленной задачи.
Форма входа
Логин:
Пароль:
Поиск
Друзья сайта
Статистика
 Каталог статей
Главная » Статьи » Проекты » Технический проект

Технический проект «Сюжетограф». Описание Фазы №1.
План.

Фаза №1.
Проигрывать диалоги игры.
Загружаем условия диалога.
Выходим на фразу 0.
Интерпретируем обмен фразами между персонажем и протагонистом.
Исполняем диалог до финальной фразы в текущей цепочке, далее сбрасываем на 0.
Управляем условиями и командами диалога вручную.

Технология исполнения диалога:

Вопросы и предположения:
1. Надо понять, что означает во фразе пустая секция <text />. Рабочее предположение – текста не выводить.
2. Если секция содержит несколько тэгов Next, то вероятно обработать надо список до первой исполненной фразы. Если ни одна из фраз не сработала, то выдать ошибку исполнения.


Фразы протагониста и фразы персонажей чередуются. Сначала фразу даёт персонаж – приглашение к диалогу. Протагонист отвечает.

Создать интерпретатор диалога «DoDialog».

Создать интерпретатор обмена фразами «DoExchangePhrases».
Состоит из двух операций:
1. GetQuestion. Получить вопрос-приглашение к диалогу.
2. SetAnswer. Дать ответ.

Действия по обработке фразы:
1. Взять секцию фразы.
2. Выделить список Next. Если список пуст, то внести в список 0, то есть выполнить сброс диалога на нулевую фразу.
3. Проверить условия. Если условия не верны – не обрабатывать далее фразу.
4. Если условия верны, то выдать на экран секцию Text. С учётом предположения №1.
5. Выполнить список Next , в соответствии с предположением №2 из данного раздела ТехПроекта. То есть, пытаться последовательно выполнять фразы из списка Next, до тех пор пока не выполнится какая-нибудь.
6. Если в процессе интерпретации текущей фразы будет зафиксировано двойное прохождение через фразу 0, то остановиться и выдать ошибку зацикливания.

Текущий список функций по обработке фраз:

Function DoQuestion(id : integer): string; //исполнить фразу по номеру, как вопрос-приглашение
Procedure DoExchangePhrases; // выполненить обмен фразами по схеме: приглашение персонажа - ответ протагониста.
Procedure GetListNextPhrases(id : integer); // получить список Next фразы по номеру
Procedure SectionPhraseToScreen(id : integer); // выдать на экран содержимое секции фразы по номеру
Procedure GetListSectionPhrase(id : integer); // получить содержимое секции фразы по её номеру
Procedure LoadInfoPortionsByDialog(sNameDialog : string); // загрузить в экранный список имена инфопорций и предусловий всего текущего диалога
function PhraseStringById(id : integer): string; // Получить текст фразы по её номеру
function StringByName (sNamePhrase : string): string; // получить текст строки по имени строки


Как подсказал (и стёр подсказку) Singapur22 - если нет следующей Next фразы, то исполнить следующую секцию <dailog_actor>. Когда нет такого диалога, тогда вернуться на завершающую фразу <start_dialog>. Изучить.
Категория: Технический проект | Добавил: NorthernMaverick (20.03.2009)
Просмотров: 409 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Бесплатный конструктор сайтов - uCoz