Java使用变量绘制几何图形
好的,我正在编写一个蛇游戏,我想让它保持相当简单,所以我选择让蛇的头部只是一个矩形,而身体只是圆形。但它当然不会像我想的那样工作 我收到以下错误消息,椭圆无法解析为类型 及 类型图形中的方法drawRectint,int,int,int不适用于参数矩形 eclipse错误消息我不知道为什么会这样说 但是为什么drawRect不适用于这些争论呢?我是说我想画的是长方形 我是如何做到这一点的,还是不可能,我必须找到另一种方法Java使用变量绘制几何图形,java,Java,好的,我正在编写一个蛇游戏,我想让它保持相当简单,所以我选择让蛇的头部只是一个矩形,而身体只是圆形。但它当然不会像我想的那样工作 我收到以下错误消息,椭圆无法解析为类型 及 类型图形中的方法drawRectint,int,int,int不适用于参数矩形 eclipse错误消息我不知道为什么会这样说 但是为什么drawRect不适用于这些争论呢?我是说我想画的是长方形 我是如何做到这一点的,还是不可能,我必须找到另一种方法 Rectangle snakeHead = new Rectangle(5
Rectangle snakeHead = new Rectangle(5,10,20,30);
Ellipse snakeBody = new Ellipse (5,10,20,30);
public void paint(Graphics g) {
g.drawRect(snakeHead);
g.drawOval(snakeBody);
}
错误消息实际上是不言自明的。调用Graphics类的drawRect方法: g、 蛇头; 例如,错误消息表示该方法需要四个整数参数 g、 图5、图10、图20、图30;
但是,您传递了一个矩形对象作为参数。您需要在Graphics类中创建一个新的方法,将矩形对象作为参数,或者从snakeHead中提取坐标并将其传递给g.drawRect。这里有一个问题。@gkhaos我很确定您不理解这个问题。您也检查了以下部分,比如Java方法参数?嗯,JDK没有任何Ellipse2D类,除非您提供了自己的类,否则编译器不知道该类型。这就是信息告诉你的。至于drawRectrectangle问题:Graphics2D有一个方法drawShape,这可能就是您尝试使用的方法。通常情况下,你得到的图形对象实际上是一个Graphics2D,所以使用instanceof测试cast应该是ok的。好的,我明白了,我假设这个方法可以用来检查碰撞等?现在我有三种方法可以做到这一点,这比我想要的方式要简单得多。例如,在头部使用变量或其他东西,而不是对象。