gpt4 book ai didi

java - Libgdx 子弹显示碰撞对象

转载 作者:行者123 更新时间:2023-11-30 09:04:55 25 4
gpt4 key购买 nike

好吧,所以我想知道为什么当我运行它时我看不到子弹碰撞对象概率。菜鸟的错误

    public static PerspectiveCamera cam;
static btCollisionWorld collisionWorld;
DebugDrawer debugDrawer;
public ModelBatch modelBatch;
btCollisionConfiguration collisionConfig;
static btDispatcher dispatcher;
btBroadphaseInterface broadphase;
public static btCollisionShape voxelShape;
public static Model model;
public static ModelInstance test;
public static btCollisionShape collisiontest;
public static btCollisionObject collisiontestobject;

@Override
public void create () {
Bullet.init();
collisionConfig = new btDefaultCollisionConfiguration();
dispatcher = new btCollisionDispatcher(collisionConfig);
broadphase = new btDbvtBroadphase();
collisionWorld = new btCollisionWorld(dispatcher, broadphase, collisionConfig);

cam = new PerspectiveCamera(67, 1280, 720);
cam.position.set(10f,10f,10f);
cam.lookAt(0,0,0);
cam.near = 1f;
cam.far = 300f;
cam.update();

modelBatch = new ModelBatch();


ModelBuilder modelBuilder = new ModelBuilder();
model = modelBuilder.createBox(3f, 3f, 3f,
new Material(ColorAttribute.createDiffuse(Color.BLUE)),
Usage.Position | Usage.Normal);

test = new ModelInstance(model);

test.transform.setTranslation(0,0,0);

collisiontest = new btBoxShape(new Vector3 (6f,6f,6f));

collisiontestobject = new btCollisionObject();
collisiontestobject.setCollisionShape(collisiontest);
collisiontestobject.setWorldTransform(new Matrix4());

debugDrawer = new DebugDrawer();
debugDrawer.setDebugMode(btIDebugDraw.DebugDrawModes.DBG_MAX_DEBUG_DRAW_MODE);

collisionWorld.setDebugDrawer(debugDrawer);


}

@Override
public void render () {

cam.update();


Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);


debugDrawer.begin(cam);
collisionWorld.debugDrawWorld();
debugDrawer.end();

//modelBatch.begin(cam);
//modelBatch.render(test);
//modelBatch.end();


}

当我运行它时,我希望看到碰撞对象的框架,但我什么也没看到......这是我创建的一个测试程序,因为有很多项目符号问题..

最佳答案

你做的一切都是正确的,只缺少一件事:

collisionWorld.addCollisionObject(collisiontestobject);

创建对象后,还需要将其添加到碰撞世界中。这就是 DebugDrawer 不呈现任何内容的原因。它根本不知道这个对象。

关于java - Libgdx 子弹显示碰撞对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25027423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com