0

我编写了一个简单的 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{
}

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

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

这会在屏幕上生成 2 个矩形,但我需要使用用变量编写的 Rectangle 代码来绘制矩形,有人告诉我这可以使用 Graphics2D 来完成,但我想知道是否有更简单的方法来使用图形函数,如果不能,你能帮我设置一下吗?

先感谢您。

4

2 回答 2

2

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

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

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

Graphics2D g2d = (Graphics2D)g;
g2d.fill(rectOne);
于 2013-01-03T19:30:15.380 回答
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);
于 2013-01-03T19:31:15.533 回答