我正在尝试使用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
还有另一种方法可以为漫长的道路创造身体吗?
答案 0 :(得分:0)
Box2D
用于2D物理。如果你有一个只有2D物理的3D游戏,你可以轻松地在幕后使用它并将视图更改为3D。但如果您需要3D物理,我建议使用PhysicsBullet
。它是3D碰撞检测和刚体动力学库。
给你一些阅读内容:Bullet physics on GitHub