我对编程很陌生(现在已经有了一个学期)并且我应该使用Lanterna Libary(在我的最后一个项目中)制作一个我可以在以后运行的终端简单的迷宫游戏,墙壁和静态和动态"敌人"以及玩家必须接受的一些关键物品。可悲的是,我不知道这是怎么回事。我已经在10点左右研究了这件事,但它给我带来的唯一一件事就是沮丧。
我在youtube上找到了一个教程,其中 javax.swing 用于创建一个 Konsole.add(new map())短语,该短语从中获取地图从 .txt 将整个内容读入java的类。我希望能做到这样的事情但是我说只需要 lanterna终端并从 java.properties文件中读取地图。
有可能吗?或者我必须使用完全不同的方法? 我从兰塔看了一下网站,然后把它扔了几次但却无法得到任何帮助我的东西。我还在这个网站上检查了任何包含lanterna的帖子,但它只是进一步加深了我的知识。 任何类型的提示或建议,即使它只是一个链接到另一篇文章将有助于我。
答案 0 :(得分:0)
嗯,首先你必须初始化lanterna控制台,这将带来一个新的摆动窗口,代表你的lampa控制台。
您可以使用以下内容:
//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
文件。希望这有点帮助:))