我编写了一个简单的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完成,但我想知道是否有更简单的方法使用图形功能,如果没有,请你帮我设置一下吗?
提前谢谢。
答案 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);