Как пройти диалог и вернуться к игровому процессуJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как пройти диалог и вернуться к игровому процессу

Сообщение Anonymous »

Я создаю 2D-игру на основе Java, в которой игроки могут взаимодействовать с неигровыми персонажами и другими объектами для запуска диалогов. Моя проблема заключается в управлении развитием диалогов так, чтобы:
  • Диалог продвигался на одну строку за раз при нажатии клавиши «Ввод».
  • После отображения всех строк диалога игра возвращается в нормальное состояние игрового процесса.
Вот как устроена моя диалоговая система :
Класс NPC: у каждого NPC есть массив диалогов. содержащие строки диалога и DialogIndex для отслеживания текущей строки.
Состояние игры: игра имеет разные состояния, такие как playState (обычный игровой процесс) и DialogState (во время диалога).Класс KeyHandler: обрабатывает ввод пользователя, включая продвижение диалога по нажатию «Ввод».
Я следил за руководством RyiSnow на YouTube и дорабатывал код. по пути. Недавно я столкнулся с проблемой ведения диалогов, не связанных с NPC. Мне удалось решить эту проблему, используя if(npcIndex != 999), потому что 999 — это значение npcIndex по умолчанию, если между игроком и NPC не обнаружено столкновений. Я хочу сделать это более пригодным для повторного использования, но изо всех сил пытаюсь придумать идеи, потому что мой класс KeyHandler обрабатывает ввод «Enter».
Текущая реализация:

Код: Выделить всё

else if(gp.gameState == gp.dialogueState) {
if(code == KeyEvent.VK_ENTER) {

int npcIndex = gp.cChecker.checkEntity(gp.player, gp.npc);

if(npcIndex != 999) {
if (gp.npc[npcIndex].dialogues[gp.npc[npcIndex].dialogueIndex] != null){
gp.npc[npcIndex].speak();
}
} else{
gp.gameState = gp.playState;
}
}

Это работает, если диалог взаимодействия без NPC представляет собой всего лишь одно сообщение. Мне бы хотелось иметь возможность учитывать все случаи, но я не уверен, с чего начать.
Как я могу обобщить логику развития диалога, чтобы она работала для всех источников диалога ( NPC, знаки и т.п.)? В частности:
Это хороший подход для обработки диалогов из нескольких источников? Существуют ли лучшие шаблоны проектирования для этого варианта использования?
Как обеспечить масштабируемость этой системы по мере роста игры (например, с добавлением большего количества объектов, запускающих диалоги)?

Подробнее здесь: https://stackoverflow.com/questions/793 ... o-gameplay
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»