-1

我一直在尝试在我的游戏中添加碰撞,这似乎是小菜一碟,我已经知道如何绘制一个矩形。但我需要用一个变量来表示那个矩形。但似乎没有像g.drawRect(myRectangleVariable)这样的方法。我需要做一些 if 语句检查相交,但如果我没有矩形变量,那么我要比较什么?如果你们需要我的任何代码,请告诉我。

4

4 回答 4

3

为什么不只是做

g.drawRect(myRectangleVariable.x, 
           myRectangleVariable.y, 
           myRectangleVariable.width, 
           myRectangleVariable.height);
于 2013-10-16T19:10:56.887 回答
2

所以创建一个变量来保存你的Rectangle:p

Rectangle rect = new Rectangle(0, 0, 50, 50);
g.drawRect(rect);
于 2013-10-16T19:08:31.647 回答
2

您应该使用 2D Shape 对象,例如矩形;

像:

    Graphics g = // get your graphic object from Component
    Graphics2D g2d = (Graphics2D) g;
    java.awt.geom.Rectangle2D.Double rect = new Rectangle2D.Double(x, y, width, height);
    g2d.draw(rect);

好处:您将获得许多功能,例如寻找交叉点和其他精美的 2D 事物。

于 2013-10-16T19:22:09.683 回答
0

首先,像这样创建矩形变量(只需在 Rectangle 参数中输入矩形的坐标和大小):

Rectangle rectangle = new Rectangle(x, y, width, height)

接下来,使用 graphics2D 来绘制它。使用 g2d.draw() 函数,因为 drawRect() 函数不接受矩形。

g2d.drawRect(rectangle)

你就是这样做的。

这样做的好处不仅仅是使用 drawRect() 函数,您可以将矩形用作按钮,因为您可以检查鼠标是否在矩形中并单击它。然后你可以改变矩形上的东西(比如大小),让它更花哨和有趣。

PS 如果您不了解鼠标部分,只需搜索 MouseMotionListener 和 MouseListener。

于 2020-10-09T09:55:00.863 回答