Bol*_*aul 3 java intersection polygon libgdx
我正试图在libGDX中制作一个简单的游戏.主精灵是潜艇,可以通过其中心原点(宽度/ 2,高度/ 2)旋转.
这个精灵是唯一一个会在我的游戏中旋转的精灵,也是唯一一个需要多边形的精灵,对于其余的精灵来说,矩形边界框就足够了.我需要创建一个多边形,所以我可以处理交叉点.多边形将是一个非常简单的多边形,只有8个顶点.
如果我知道精灵,旋转和原点的位置,我怎样才能得到多边形的顶点?
这张图片可以准确地解释我想要的东西:

noo*_*one 10
您可以使用多边形并手动定义主体.它可能如下所示,从左下角开始,顺时针方向直到右下角.您当然可以更改这些值并将其调整为精灵.
float[] vertices = new float[] {
-2, -2,
-2, 2,
-0.5f, 2,
-0.5f, 3,
0.5f, 3,
0.5f, 2,
2, 2,
2, -2
};
Polygon submarine = new Polygon();
submarine.setVertices(vertices);
Run Code Online (Sandbox Code Playgroud)
现在,您可以像精灵一样旋转此多边形,然后移动它并缩放它.只需确保保持多边形和精灵同步.对于碰撞,您可以使用Intersector.
对于多边形的调试,您可以使用ShapeRenderer在屏幕上呈现它.
shapeRenderer.begin();
shapeRenderer.polygon(polygon.getTransformedVertices());
shapeRenderer.end();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3731 次 |
| 最近记录: |