我正在尝试使用特定代码,但由于某些原因它无法运行。我必须在同一个类中使用方法:
public void InputEnter()
{
if(Input.GetKey(getCoords)) {
Move(GetTransform().GetPos());
System.out.println((GetTransform().GetPos()));
}
}
一旦我按下回车键,这个方法给了我一些Vector3f的坐标。其他代码写入文件。
public void ProcessText()
{
System.out.println("ProcessText Operational");
String file_name = "C:/Users/Server/Desktop/textText.txt";
try
{
ProcessCoords file = new ProcessCoords(file_name);
String[] aryLines = file.OpenFile();
int i;
for (i = 0; i < aryLines.length; i++)
{
System.out.println(aryLines[i]);
if(aryLines[i].startsWith("makeGrass:")) {
String Arguments = aryLines[i].substring(aryLines[i].indexOf(":")+1, aryLines[i].length());
String[] ArgArray = Arguments.split(",");
this.makeGrass(Double.parseDouble(ArgArray[0]),
Double.parseDouble(ArgArray[1]),
Double.parseDouble(ArgArray[2]));
}
}
ProcessCoords data = new ProcessCoords(file_name);
data.writeToFile("makeGrass:");
System.out.println("Coordinates Saved!");
} catch(IOException e) {
System.out.println(e.getMessage());
}
}
我想要做的是在ProcessText方法中使用InputEnter方法,所以我只删除了InputEnter并在ProcessText方法中使用了输入代码:
public void ProcessText()
{
System.out.println("ProcessText Operational");
String file_name = "C:/Users/Server/Desktop/textText.txt";
try
{
ProcessCoords file = new ProcessCoords(file_name);
String[] aryLines = file.OpenFile();
int i;
for (i = 0; i < aryLines.length; i++)
{
System.out.println(aryLines[i]);
if(aryLines[i].startsWith("makeGrass:")) {
String Arguments = aryLines[i].substring(aryLines[i].indexOf(":")+1, aryLines[i].length());
String[] ArgArray = Arguments.split(",");
this.makeGrass(Double.parseDouble(ArgArray[0]),
Double.parseDouble(ArgArray[1]),
Double.parseDouble(ArgArray[2]));
}
}
if(Input.GetKey(getCoords)) {
Move(GetTransform().GetPos());
ProcessCoords data = new ProcessCoords(file_name);
data.writeToFile("makeGrass:");
System.out.println("pressing enter doesn't work!!");
System.out.println((GetTransform().GetPos()));
}
System.out.println("Input.GetKey doesn't work anymore, but why and how to fix it??");
} catch(IOException e) {
System.out.println(e.getMessage());
}
}
然而现在,按回车不再像以前那样给我坐标,我真的不明白为什么,我需要一些帮助。
非常感谢!
答案 0 :(得分:0)
好吧我花了一段时间但我已经弄明白了,它实际上非常简单:
正如您在ProcessText()中所看到的,我已经包含了从文件中读取的代码和写入文件的代码。
autoload.php
我的想法是将Input方法放入ProcessText方法,如下所示:
ProcessCoords data = new ProcessCoords(file_name);
data.writeToFile("makeGrass:");
System.out.println("Coordinates Saved!");
这几乎是正确的但是......让输入工作为gameObject我需要将Input类添加为组件:
gameObject.addComponent(new InputClass());
我所要做的就是从我的ProcessText方法中取出它并将它移到我的Input类中,所以它看起来像这样:
if(Input.GetKey(getCoords)) {
Move(GetTransform().GetPos());
ProcessCoords data = new ProcessCoords(file_name);
data.writeToFile("makeGrass:");
System.out.println("pressing enter doesn't work!!");
System.out.println((GetTransform().GetPos()));
之后我能够实际使用相应gameObject的输入,并且只有当我按下回车键时,显然才能获得写入文本文件的适当坐标。
结果如下:http://www.pic-upload.de/view-27748157/AnotherExample.png.html
我希望将来我的回答可以帮助其他人!