我想知道如何检查组内元素与游戏其他元素之间的碰撞,换句话说,我想知道如何在组元素周围绘制一个矩形,因为到目前为止,每次我尝试时,矩形都是总是在错误的位置,我尝试使用stageToLocalCoordinates但结果总是一团糟(有时我将矩形放在正确的位置但是当我移动组时,矩形似乎有“镜像效果”{向相反的方向移动} )
问问题
1344 次
1 回答
0
使用 ShapeRenderer..
在返回 Rectangle 的组的所有元素中创建一个函数。
public Rectangle getBounds()
{
return new Rectangle(x,y,width,height);
}
现在在你的舞台上,在绘制你的元素(演员)之前绘制矩形。
shapeRenderer.setProjectionMatrix(stage.getCamera().combined);
shapeRenderer.begin(ShapeType.Filled);
shapeRenderer.setColor(Color.BLUE); // put any color you want
// for each actor of your stage do this
shapeRenderer.rect(actor.getBounds().x,actor.getBounds().y,actor.getBounds().width,actor.getBounds().height);
编辑:
要将矩形转换为多边形,您可以使用我前段时间制作的此方法
public static float[] rectangleToVertices(float x, float y, float width,
float height) {
float[] result = new float[8];
result[0] = x;
result[1] = y;
result[2] = x + width;
result[3] = y;
result[4] = x + width;
result[5] = y + height;
result[6] = x;
result[7] = y + height;
return result;
}
和
Polygon poly=new Polygon(rectangleToVertices(.....));
把你的多边形放在你的游戏屏幕类中。
在渲染方法中设置多边形位置..
于 2014-06-08T06:20:51.463 回答