libgdx来自模型的身体

时间:2014-03-10 16:41:36

标签: java libgdx box2d

我正在尝试使用LibGDX制作游戏。我从* g3db文件创建一个模型,如下所示:

public AssetManager assets;
assets = new AssetManager();
assets.load("data/road.g3db", Model.class);
Model road = assets.get("data/road.g3db", Model.class);
ModelInstance roadInstance = new ModelInstance(road);

data / road.g3db是一条像道路一样长的彩带。我在搅拌机中制作它。像这样的事情:

      ****
     *    *****         ****
    *          *       *
 ***            *******

我的问题是:如何从这个模型中创建身体?我试试这个:

ChainShape shape = new ChainShape();
Mesh roadMesh = roadInstance.model.meshes.get(0);

float ar[] = new float[roadMesh.getVerticesBuffer().capacity()];
roadMesh.getVerticesBuffer().get(ar);

shape.createChain(ar);

但有错误:

 AL lib: (EE) alc_cleanup: 1 device not closed
 Assertion failed!

 Program: C:\Program Files (x86)\Java\jre7\bin\javaw.exe
 File: /var/lib/jenkins/workspace/libgdx/gdx/jni/Box2D/Collision/Shapes/b2ChainShape.cpp,
 Line 63

表达式:b2DistanceSquared(v1, v2) > 0.005f * 0.005f

还有另一种方法可以为漫长的道路创造身体吗?

1 个答案:

答案 0 :(得分:0)

顾名思义,

Box2D用于2D物理。如果你有一个只有2D物理的3D游戏,你可以轻松地在幕后使用它并将视图更改为3D。但如果您需要3D物理,我建议使用PhysicsBullet。它是3D碰撞检测和刚体动力学库。 给你一些阅读内容:Bullet physics on GitHub