Разрабатывая игру, где основной способ взаимодействия с игровым миром — щёлканье по ссылкам в описании, столкнулся со следующей интерфейсной проблемой. Обычный порядок ввода/вывода следующий:
1. Выводится описание ситуации.
2. Принимается команда игрока.
3. Выводится описание действия по команде игрока.
4. Выводится реакция игры на команду.
5. ???
Вот тут и кроется нюанс — выводимое в пункте 1 описание к пункту 5 может устареть — некоторые ссылки в нём будут уже не актуальны. Поэтому по-хорошему, нужно либо обновить описание, либо заблокировать ссылки (это из первого, что приходит на ум).
Навскидку варианта два:
А) В пункте 5 блокируем все ссылки в описании (чтобы ничего не нажималось), даём игроку ознакомиться с описанием результата своих действий, после чего очищаем экран и переходим к пункту 1. Отмеченный многими (по демке) минус — лишнее действие игрока после каждой обработки его поступков (нажатие ссылки "продолжить" или клавиши "пробел"). Плюсы — естественная последовательность информации: сначала исходные данные, затем действие, а под конец — результат.
Вы стоите посреди арены перед грозным и голодным великаном!
Вы напали на великана.
Великан откусил вам голову.
[продолжить]
Б) Переставляем порядок ввода/вывода:
1. Выводим описание действия по последней команде игрока.
2. Выводим реакцию игры на последнюю команду игрока.
3. Выводим описание ситуации.
4. Принимаем команду игрока.
5. Переходим к пункту 1.
Вы напали на великана.
Великан откусил вам голову.
Вы стоите посреди арены с откушенной головой. Но есть ещё силы на последний рывок!
Минус — разве что нарушение последовательности подачи информации. Плюс — исключение лишнего действия и незначительное снижение риска туннельного синдрома запястья.
Кто-нибудь сталкивался (реализовывал) с ещё какими-нибудь вариантами? Вариант с непрерывном выводом информации с надеждой на скроллинг, наверное, предлагать не стоит.
Неактивен
А что если так:
1. Выводим описание ситуации.
2. Выводим описание действия по последней команде игрока.
3. Выводим реакцию игры на последнюю команду игрока.
4. Принимаем команду игрока.
5. Переходим к пункту 1.
Неактивен
Хм, что-то не заметил разницы с предыдущим примером. Может, не тот файл?
UPD: Разницу понял. Ссылки последнего выведенного блока текста не блокируются.
Отредактировано HzD_Byte (20.09.2010 12:14)
Неактивен
А если вариант Б, но описание ситуации выводится обновленное, с учетом последнего действия:
Вы напали на великана.
Великан откусил вам голову.
Вы мертвы.
Неактивен
Второй вариант выглядит разумнее
Неактивен