Libgdx - box2d-创建自定义多边形体

时间:2013-12-31 08:55:09

标签: libgdx box2d sprite shape

我试过用这个 Libgdx and Box2D Draw a custom shape 但它没有帮助我。

假设我有一张图片 - http://cdn.motocross.transworld.net/files/2010/09/geicohondausa2.png

我想为图像创建凸多边形,然后显示灯具/主体的单个图像。

这可能吗? sprite.getVertices也不起作用..

2 个答案:

答案 0 :(得分:1)

Sprite始终是矩形的,这就是Sprite.getVertices()在这里没有意义的原因。

使用链接问题中的编辑器,您可以将主体创建为多边形。然后你必须在你的游戏中导出/导入它作为一个正确的夹具。也许您还应该添加一些圆形轮装置并将它们与接头连接到底盘。

您实际上无法将图像添加到Body。 Box2D对渲染或任何形式的视觉效果一无所知。你需要自己做。使用SpriteBatchSprite。你需要做的就是在渲染精灵之前保持精灵和身体在每一帧中同步。这意味着您执行sprite.setPosition(body.getPosition())sprite.setRotation(body.getRotation())之类的操作。 (只是虚拟代码,您可能需要更多转换)。

答案 1 :(得分:0)

Sprite.getVertices()返回20个浮点数,其中包含X,Y,U,V和Color,因此5 * 4 = 20,您可以通过使用SpriteBatch.X1作为索引0处的顶点和SpriteBatch来获取索引.Y1 Y2左右,这很好,因为库可能会改变。

请注意,Box2d中的PolygonShape顶点数应该在 3> = VERTICES< = 8 的范围内,因此您不能使用超过8个,但是您可以使用多个灯具和对每个PolygonShape使用FixtureDef并附加到正文。

此外,索引在PolygonShape上很重要(但是新版本的box2d并不关心),并且从Sprite顶点获取并且排列良好。

相关问题