晚上好,我正在尝试做一个简短的Textadventure我的问题是我不知道我应该如何将GUI与故事连接起来。 到目前为止,我所做的一切都很简单“当按下这个按钮时,改变这个标签”和这样的东西,但现在我必须从GUI获取文本以便故事可以继续,这就是我的问题开始的地方。 要获得这些值很简单,但我不知道如何正确使用它们,故事应该等待输入,然后继续根据输入在控制台上的一切工作,我不知道如何继续。
修改 所以我的问题是如何使用文本字段输入来推进故事 有三件事我不知道并且想学习: 1.暂停故事,直到输入为止 2.使用此输入权来推进故事 3.在标签中显示正确的故事
这是我的两个房间课程
package Locations;
import java.util.ArrayList;
import java.util.Scanner;
import xmlModul.XmlLoader;
public class GameTile00 extends SuperLocation{
XmlLoader loader = new XmlLoader();
GameTile01 next = new GameTile01("Raum2","zweiter Raum");
//später character für inventar einfügen
ArrayList<String> items = new ArrayList();
Scanner s = new Scanner(System.in);
public GameTile00(String Name, String Beschreibung) {
super(Name, Beschreibung);
}
@Override
public void Storytelling() {
story1();
}
public void story1(){
String story1 = "<html>Du wachst auf in einem Raum der dir gänzlich unbekannt ist.<br>"
+ "Alles was du siehst ist ein Teller mit Keksen, daneben ein Schlüssel<br>"
+ "Deine Möglichkeiten sind begrenzt, schließt du die Tür auf, oder isst du die Kekse?(Essen/Aufschließen)";
System.out.println(story1);
String eingabe = s.next();
if(eingabe.equalsIgnoreCase("Essen")){
System.out.println("Du fühlst dich zwar erfrischt, jedoch hast du jetzt durst und sitzt im Raum...");
}
else if(eingabe.equalsIgnoreCase("Aufschließen")){
System.out.println("du nimmst deinen Mut zusammen und gehst in den nächsten raum.");
next.Storytelling();
}
else{
System.out.println("hö?");
}
}
和
package Locations;
import java.util.ArrayList;
import java.util.Scanner;
import xmlModul.XmlLoader;
public class GameTile01 extends SuperLocation{
XmlLoader loader = new XmlLoader();
//später character für inventar einfügen
GameTile02 west = new GameTile02("Raum west","West Raum");
GameTile03 ost = new GameTile03("Raum ost","Ost Raum");
ArrayList<String> items = new ArrayList();
Scanner s = new Scanner(System.in);
public GameTile01(String Name, String Beschreibung) {
super(Name, Beschreibung);
}
@Override
public void Storytelling() {
story1();
}
public void story1(){
String story1 = "<html>im neuen raum ist es schwarz doch findest du durch ertasten einen Lichtschalter <br>"
+ "ein leerer raum erstreckt sich mit zwei türen, wohin gehst du? (westen, osten)</html>";
System.out.println(story1);
String eingabe = s.next();
if(eingabe.equalsIgnoreCase("Osten")){
System.out.println("Was sich wohl im osten befindet");
ost.Storytelling();
}
else if(eingabe.equalsIgnoreCase("Westen")){
System.out.println("was sich wohl im westen befindet");
west.Storytelling();
}
else{
System.out.println("hö?");
}
}
我的GUI只有一个Textfield来获取输入,一个按钮来发送输入,一个Label来显示故事
提前谢谢。
答案 0 :(得分:0)
你要问的并不难实现。
@ 1。你可以使用布尔值。如果它的值为真则故事正在运行,当故事为假时则故事未运行。可能是一个eventhandler,它在选择文本字段时将布尔值设置为false。
@ 2对此不完全确定,我假设您的意思是针对值列表,int或字符串测试输入值,它可能取决于所需的答案。
@ 3 Label类具有内置函数。为此,它将是label.setText(string);
我希望这对您有所帮助,如果您需要特定代码部分的帮助,请发布该代码。如果你不知道如何开始然后在网上看,有很多关于如何处理按钮事件和类似事情的教程,其灵魂目的是教你一些东西。