将基于文本的游戏制作到可执行的Jar语言 - Java中



我只是想知道如何将基于文本的游戏机游戏制作到可执行罐中。

从我在本网站的其余部分中看到的内容,我需要使用JTEXTFIELD和JTEXTPANE。我也知道,要使它可以运行,就需要创建自己的控制台。我不在乎它有多复杂,只要它足够简单就可以理解。如果这是这样的,那么提高了您的方式,请您指出我的正确方向,以学习如何完成此操作。

如果这是其他地方的重复,请指出我的方向;我已经搜索过,找不到任何简单的问题。

对于控制台,您可以从命令行运行它,也可以像您说的那样,制作GUI并将其表现为控制台。

GUI可以通过两种方式完成:

  1. 创建一个带有用于输出的文本框的简单GUI和1行的输入框。添加方法以分别写和获取行
  2. 创建另一个简单的GUI和一个扩展PrintStream的类。覆盖PrintStream类的写入方法,以使它们写入您创建的JTEXTPANE。遵循InputStream(System.in)的相同格式。您可以通过System.Setin(InputStream)和System.Setout(printStream)设置这些。这种方法的结果更为复杂,但仍具有更完整的感觉。

更多关于#2:@jordan.mcbride系统类中的所有内容均由JRE定义。在您的程序运行之前,JRE将准备您程序可能调用的系统类的所有元素。这样,它会创建一个printstream对象,并告诉它写入控制台。您的程序可以使用System.out调用此类。同样,JRE还会创建一个输入式对象并将其分配给控制台窗口,您可以通过System.in来引用该对象。Java使您可以选择使用您自己的System.Setin(..)和System.Setout(..)交换这些流类。如果您的程序GUI失败,您不必显示不友好的控制台即可显示错误。

,这很有用。

通过创建自己的类覆盖PrintStream和InputStream类的类,您可以重定向要数据流。在此处查看printstream类的API。println()和print()方法都调用write()函数。为了简单起见,我只会覆盖印刷品和印刷品。在您的函数中,您可以拥有像

一样简单的东西
public void println(String outstr)
{
  this.textBox.setText(this.textBox.getText() + outStr + "n");
}

当然,您必须具有文本框的实例字段,以便知道在哪里写。

您需要JTextFieldJTextPane,仅当您想要游戏的GUI时。

对于控制台游戏,

首先创建一个manifest.txt。确保以新线路结束。

Main-Class: MyMainClass

然后

javac MyMainClass.java SomeOtherClass.java
jar -cvfm my-game.jar manifest.txt *.class

然后运行它,

java -jar my-game.jar

如果您正在寻找一个简单的解决方案,则可以考虑使用ACM Java工作队库和子分类综合图。这应该使您当前的大部分代码完好无损。

http://www-cs-faculty.stanford.edu/~eroberts/jtf/

最新更新