我目前正在用Java制作一个简单的2D RPG游戏。Scanner(System.in).nextLine()阻止我的游戏
我得到了渲染&滴答方法完成,游戏工作正常。
现在我想实现一个控制台,用户可以输入一些命令并与地图交互。
问题是,当我开始游戏,它只是冻结。该冻结是由Scanner(System.in).nextLine()引起的。这是我的分析器类:
import java.util.Scanner;
public class Parser
{
private CommandWords aValidCommands;
private Scanner aReader;
public Parser()
{
this.aValidCommands = new CommandWords();
this.aReader = new Scanner(System.in);
} // Parser()
public Command getCommand()
{
String vInputLine;
String vWord1 = null;
String vWord2 = null;
System.out.print("> ");
vInputLine = this.aReader.nextLine();
Scanner vTokenizer = new Scanner(vInputLine);
if (vTokenizer.hasNext()) {
vWord1 = vTokenizer.next();
if (vTokenizer.hasNext()) {
vWord2 = vTokenizer.next();
}
}
if (this.aValidCommands.isCommand(vWord1)) {
return new Command(vWord1, vWord2);
}
else {
return new Command(null, null);
}
} // getCommand()
} // Parser
和我的蜱功能(被称为60次/秒)
Parser aParser = new Parser();
Command command = aParser.getCommand();
当它到达行“vInputLine = this.aReader.nextLine(游戏只是冻结);“。我不知道为什么。
此外解析器类工作正常,我已经使用这个类做了一个基于控制台的RPG。我只是不知道为什么当我尝试在我的2D游戏中实现它时会冻结。
任何帮助,将不胜感激。
它应该阻止。直到您在控制台上输入内容。你期望它做什么? –
你应该使用线程.. – perencia