Wie man durch Dialoge vorankommt und zum Gameplay zurückkehrtJava

Java-Forum
Guest
 Wie man durch Dialoge vorankommt und zum Gameplay zurückkehrt

Post by Guest »

Ich baue ein Java-basiertes 2D-Spiel, in dem Spieler mit NPCs und anderen Objekten interagieren können, um Dialoge auszulösen. Mein Problem besteht darin, den Fortschritt von Dialogen so zu verwalten, dass:
  • Der Dialog schreitet jeweils eine Zeile weiter, wenn die „Enter“-Taste gedrückt wird.
  • Sobald alle Dialogzeilen angezeigt wurden, kehrt das Spiel zum normalen Spielzustand zurück.
So ist mein Dialogsystem aufgebaut :
NPC-Klasse: Jeder NPC verfügt über ein Dialog-Array mit Dialogzeilen und einen DialogIndex, um die aktuelle Zeile zu verfolgen.
Spielstatus: Das Spiel hat verschiedene Zustände wie playState (normales Gameplay) und dialogState (im Dialog).
KeyHandler-Klasse: Diese verarbeitet Benutzereingaben, einschließlich des Fortschreitens des Dialogs durch Drücken der Eingabetaste.
Ich habe das Tutorial von RyiSnow auf YouTube verfolgt und den Code aufgepeppt der Weg. Ich bin kürzlich auf ein Problem mit der Ausführung von Dialogen gestoßen, die nichts mit NPCs zu tun haben. Ich konnte das mit if(npcIndex != 999) lösen, da 999 der Standardwert von npcIndex ist, wenn keine Kollision zwischen dem Spieler und einem NPC erkannt wird. Ich möchte dies wiederverwendbar machen, aber es fällt mir schwer, Ideen zu entwickeln, da meine KeyHandler-Klasse die „Enter“-Eingabe verarbeitet.
Aktuelle Implementierung:

Code: Select all

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;
}
}

Dies funktioniert, wenn der Dialog der Nicht-NPC-Interaktion nur eine Nachricht ist. Ich würde gerne alle Fälle berücksichtigen, bin mir aber nicht sicher, wo ich anfangen soll.
Wie kann ich die Dialogfortschrittslogik verallgemeinern, damit sie für alle Dialogquellen funktioniert ( NPCs, Schilder usw.)? Konkret:
Ist dies ein guter Ansatz für den Umgang mit Dialogen aus mehreren Quellen? Gibt es bessere Entwurfsmuster für diesen Anwendungsfall?
Wie kann ich sicherstellen, dass dieses System skalierbar ist, wenn das Spiel wächst (z. B. mit mehr Dialog auslösenden Entitäten)?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post