0

我对编程很陌生(现在有一个学期),我应该使用 Lanterna 库(在我的期末项目中)制作一个终端,以后我可以在其中运行一个非常简单的带有墙壁和静态的迷宫游戏和动态的“敌人”以及玩家必须拾取的一些关键对象。可悲的是,我不知道这将如何工作。我已经花了大约 10 个小时来研究这件事,但它给我带来的唯一一件事就是沮丧。

我在 youtube 上找到了一个教程,其中javax.swing用于制作一个Konsole.add(new map())短语,该短语从一个类中获取地图,该类将整个内容从.txt读取到 java 中。我希望做这样的事情,但如前所述,我必须只使用lanterna 终端并从java.properties 文件中读取地图。

有可能这样做吗?还是我必须使用完全不同的方法?我从 lanterna 上查看了网站并阅读了 throw it 几次,但无法从中得到任何帮助我的东西。我还在这个网站上查看了任何包含灯笼的帖子,但它只是加深了我的知识。任何类型的提示或建议,即使它只是指向另一篇文章的链接,都会对我有所帮助。

4

1 回答 1

0

好吧,首先你必须初始化 lanterna 控制台,这将打开一个新的摆动窗口,代表你的 lanterna 控制台。

灯笼

你可以使用这样的东西:

//Init Lanterna terminal
Terminal terminal = TerminalFacade.createTerminal();
//Will bring up the terminal window
terminal.enterPrivateMode();
//Optional: you can hide the cursor so it wont blink
terminal.setCursorVisible(false);

所以现在您可以使用这些方法terminal.moveCursor(x, y)terminal.putCharacter(char);打印出您的地图。当你终止你的程序时,你应该打电话

terminal.exitPrivateMode();

属性文件

所以你要做的第一件事就是读入属性文件。

String filename = ""; //Filename or filepath to your .properties file
Properties properties = new Properties();
try {
    InputStream inputStream = new FileInputStream(filename);
    properties.load(inputStream);
    inputStream.close();
} catch (java.io.IOException e) {
    e.printStackTrace();
}

要从Properties对象中检索数据,您可以使用方法properties.propertyNames()properties.getProperty("PropertyName")

Enumeration<?> propertyNames = properties.propertyNames();
while (propertyNames.hasMoreElements()) {
    String name = (String) propertyNames.nextElement();
    String value = properties.getProperty(name);
    System.out.println("Name: "+name+"\tValue: "+value);
}

这会打印出.properties文件中的每个条目。您现在已经处理了键值对,并且可能将它们存储在数组或集合中。然后,您可以编写一个方法将它们打印到 Lanterna 控制台,然后您可以轻松地更新它们或将它们保存回.properties文件。希望这会有所帮助:)

于 2016-01-09T15:23:58.773 回答