使用方法中的代码的Java不起作用

时间:2015-07-19 17:43:14

标签: java methods

我正在尝试使用特定代码,但由于某些原因它无法运行。我必须在同一个类中使用方法:

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());
        }
     }

然而现在,按回车不再像以前那样给我坐标,我真的不明白为什么,我需要一些帮助。

非常感谢!

1 个答案:

答案 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

我希望将来我的回答可以帮助其他人!