所以我在这里有点困惑,有一天我有了第一个面向对象编程的java类,并且我决定需要练习很多,因为我们经过“自上而下”设计,这基本上意味着我们首先使用我们想要的任何方法编写主程序块,然后将这些方法的定义写入新类。来自另一个类的混淆调用方法(Robot类)
所以我决定在我玩的MMO游戏中玩机器人课,基本上我的计划是让我的角色随机从地图转到地图上,我做的第一件事只是一个简单的鼠标移动到坐标其中一个“门”在我的游戏,然后单击该门打开,我可以移动到的位置,如果我用这个代码,它工作正常:
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Move {
public static void main(String[] args) throws Exception {
Robot sW = new Robot();
Thread.sleep(2000);
sW.mouseMove(262,105);
Thread.sleep(500);
sW.mousePress(InputEvent.BUTTON1_MASK);
sW.mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(5000);
}
}
但是因为就像我说的,我想实践自上而下的设计,我不得不让我的主要方法更清洁,所以我尝试了以下内容:
package test;
public class Test {
public static void main (String [] args){
Gater sW = new Gater();
sW.moveToGate();
}
}
package test;
import java.awt.event.InputEvent;
import java.awt.Robot;
public class Gater {
public void moveToGate(){
Thread.sleep(2000);
mouseMove(262,105);
Thread.sleep(500);
mousePress(InputEvent.BUTTON1_MASK);
mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(5000);
}
}
现在从我从班上收集的东西,如“mouseMove();”应该已经工作了(但它没有),因为我们正在使用“move()”方法与“Karel the Robot”合作。而不是“robot.move();”是完全没问题的,现在我的问题是,我是否真的错过了一些东西,或者它在“真正的”java世界中实际上不是“合法的”?
如果不是,是否有任何方法可以让我得到我想要的东西?
谢谢。
:
您必须创建一个机器人实例。在第二个例子中,你期望这种方法在“Gater”中,它不是你的例子 –
Karel是谁?除此之外,您应该使用IDE进行编程并使用名为“重构/提取方法...”的功能。这将创建一个可重用的方法,但保持您的代码完好无损。 –
您已完全移除机器人。你只是导入这个类,但不再创建它的一个对象。 –