我正在尝试一口气学习 Java 和子弹物理。一次做所有事情可能有点太多了,但我喜欢挑战。
到目前为止,我已经学会了如何导入 g3db 对象,将子弹物理应用到它们,并使用以下代码在屏幕上与它们交互:
assets = new AssetManager();
assets.load("globe.g3db", Model.class);
assets.load("crate.g3db", Model.class);
assets.finishLoading();
Model model = assets.get("globe.g3db", Model.class);
ModelInstance inst = new ModelInstance(model);
inst.transform.trn(0, 20, 0);
btRigidBody body;
btSphereShape sh = new btSphereShape(1);
sh.calculateLocalInertia(1, new Vector3(0,0,0));
body = new btRigidBody(new btRigidBody.btRigidBodyConstructionInfo(3, new btDefaultMotionState(inst.transform), sh));
body.setUserValue(Minstances.size);
body.proceedToTransform(inst.transform);
motionState = new MyMotionState();
motionState.transform = inst.transform;
body.setMotionState(motionState);
dynamicsWorld.addRigidBody(body );
Minstances.add(inst);
这很好用,如果我把它放在地上,它会掉下来停在地上,但是当它四处移动时,它会滑动而不是滚动。有简单的解决方法吗?