Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用方法中的代码的Java不';行不通_Java_Methods - Fatal编程技术网

使用方法中的代码的Java不';行不通

使用方法中的代码的Java不';行不通,java,methods,Java,Methods,我正在尝试使用一个特定的代码,但由于某些原因它无法工作。我必须使用同一类中的方法: public void InputEnter() { if(Input.GetKey(getCoords)) { Move(GetTransform().GetPos()); System.out.println((GetTransform().GetPos())); } } 这个方法给了我一些向量3f的坐标,一旦我点

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

public void InputEnter()
    {       
        if(Input.GetKey(getCoords)) {
            Move(GetTransform().GetPos());
        System.out.println((GetTransform().GetPos()));
        }
}
这个方法给了我一些向量3f的坐标,一旦我点击回车键。另一个代码写入一个文件

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());
        }
     }
ProcessCoords data = new ProcessCoords(file_name);      
data.writeToFile("makeGrass:");

System.out.println("Coordinates Saved!");
public void ProcessText()
{
System.out.println(“ProcessText操作”);
字符串文件_name=“C:/Users/Server/Desktop/textText.txt”;
尝试
{           
ProcessCoords文件=新的ProcessCoords(文件名);
字符串[]aryLines=file.OpenFile();
int i;
对于(i=0;i
我想做的是在ProcessText方法中使用Inpunter方法,所以我只是删除了Inpunter,并在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());
        }
     }
public void ProcessText()
{
System.out.println(“ProcessText操作”);
字符串文件_name=“C:/Users/Server/Desktop/textText.txt”;
尝试
{           
ProcessCoords文件=新的ProcessCoords(文件名);
字符串[]aryLines=file.OpenFile();
int i;
对于(i=0;i
但是现在,按enter键不再像以前那样为我提供坐标,我真的不明白为什么,我需要一些帮助


非常感谢

好吧,这花了我一段时间,但我已经弄明白了,其实很简单:

正如您在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]));                    
                }
            }

            ProcessCoords data = new ProcessCoords(file_name);      
            data.writeToFile("makeGrass:");

            System.out.println("Coordinates Saved!");

        } catch(IOException e) {            
            System.out.println(e.getMessage());
        }
     }
ProcessCoords data = new ProcessCoords(file_name);      
data.writeToFile("makeGrass:");

System.out.println("Coordinates Saved!");
我的想法是将输入方法放入ProcessText方法,如您在此处所见:

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()));
这几乎是正确的,但很好。。要使游戏对象的输入工作正常,我需要将输入类添加为组件:

addComponent(新的InputClass())

我所要做的就是将它从ProcessText方法中取出,并将其移动到输入类中,使其看起来像这样:

public void Input(float delta)
{           
String file_name = "C:/Users/Server/Desktop/textText.txt";

try
{           
    ProcessCoords data = new ProcessCoords(file_name);

    if(Input.GetKey(getCoords)) {   
    data.writeToFile("makeGrass:" + (GetTransform().GetPos()));

    System.out.println("Coordinates Saved!");   
    System.out.println((GetTransform().GetPos()));
    }   

    } catch(IOException e) {
        System.out.println(e.getMessage());
    }
}
在那之后,我能够实际使用各个游戏对象的输入,并且显然只有当我按下enter键时,才能将适当的坐标写入文本文件

结果如下:

我希望我的回答将来能帮助别人