我正在玩图形游戏,遇到了一些障碍。我似乎无法调用包含我的图形的其他类。提前致谢。如您所见,我试图将其称为gameOBJ.Draw,但它给了我错误。 这是错误: GameObjects类型的Draw(Graphics)方法不适用于参数()
public class Testing{
public boolean running = true;
public static void main(String[] args) {
GameObjects gameOBJ = new GameObjects();
gameOBJ.Draw();
Window window = new Window(Window.WIDTH, Window.HEIGHT, Window.TITLE);
}
public class GameObjects{
public void Draw(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, Window.WIDTH, Window.HEIGHT);
}
}
答案 0 :(得分:2)
这里:
gameOBJ.Draw();
那里:
public void Draw(Graphics g)
方法签名期望您传递一个参数,而您的调用则不会。根本无法那样工作。
关键在这里:您必须了解自己在做什么:当您的draw()
方法应在“某物上”绘制时,您必须将该物传递给它,例如,首先创建该窗口,然后获取属于该窗口的图形对象。
答案 1 :(得分:2)
要解决该编译错误,您可以传递一个graphics
对象。
例如,您可以使用Windows图形(但这可能不是您的任务/项目的要求。对于JDK 10 Window.TITLE
不存在的情况,我怀疑它是否也存在于较早的版本中。)< / p>
可选:按照惯例,Java中的方法名称应以小写字母开头,因此方法名称应为draw
。
public static void main(String[] args) {
GameObjects gameOBJ = new GameObjects();
//Pass the graphics object to the Draw method
Window window = new Window(Window.WIDTH, Window.HEIGHT, Window.TITLE);
Graphics graphics =window.getGraphics() ;
gameOBJ.Draw(graphics);
}