有没有办法使用Graphics类绘制变量矩形

时间:2013-01-03 19:26:13

标签: java awt rectangles

我编写了一个简单的Java游戏,其中屏幕上有两个矩形,其中一个矩形移动而另一个保持静止,移动的矩形随键盘箭头输入移动,可以向上,向下,向左或向右移动。我遇到的问题是在屏幕上绘制我的矩形,我的意思是我有2个矩形设置我的变量如下所示:

Rectangle rectOne = new Rectangle(shiftX, shiftY,90,90);
Rectangle rectTwo = new Rectangle(500 + buckyPositionX, 330 + buckyPositionY, 210, 150);

我制作了一个渲染方法来绘制我想要显示的屏幕上的内容:

 public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{
}

我遇到的问题是通过在render方法中编写代码来在屏幕上显示我的矩形,我可以执行以下操作:

g.fillRect(x, y,90,90);
g.fillRect(500 + buckyPositionX, 330 + buckyPositionY, 210, 150);

哪个在屏幕上制作2个矩形,但我需要使用用变量写的Rectangle代码绘制矩形,我被告知这可以使用Graphics2D完成,但我想知道是否有更简单的方法使用图形功能,如果没有,请你帮我设置一下吗?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以轻松访问Rectangle个实例的属性:

g.fillRect(rectOne.getX(), rectOne.getY(), rectOne.getWidth(), rectOne.getHeight());

在任何情况下,通常Graphics对象在运行时都是Graphics2D实例,所以这也可以很容易地工作:

Graphics2D g2d = (Graphics2D)g;
g2d.fill(rectOne);

答案 1 :(得分:1)

只需使用:

g.fillRect(myRect.getX(), myRect.getY(), myRect.getWidth(), myRect.getHeight());

其中myRect是您要绘制的矩形。如果要绘制大量矩形,甚至可以创建自定义方法drawRect(Graphics g, Rectangle myRect);

使用Graphics2D并不困难,因为提供Graphics对象通常是Graphics2D对象:

Graphics2D g2d = (Graphics2D) g;
g2d.fill(myRect);