如何结合 Scene2d 和 Bullet?

第二

我想在scene2d 舞台上使用bullet 显示一些动画。不需要与子弹部分的交互,它应该只是一个动画。

如果需要,我还可以添加 SimpleSimulator(因此该文件仍有大约 200 行,即使在删除了本示例不需要的内容之后)。

调用SimpleSimulator#create基本上设置了世界、环境和对象。(整个项目基于https://github.com/xoppa/blog/blob/master/tutorials/src/com/xoppa/blog/libgdx/g3d/bullet/dynamics/step6/BulletTest.java

public class SimpleExample implements ApplicationListener {

    private class ExampleStage extends Stage {

        public ExampleStage() {

            Image background = new Image(new Texture(Gdx.files.internal("background.png")));
            addActor(background);

        }
    }

    private Camera cam;
    private Stage stage;
    private SimpleSimulator simulator;

    @Override
    public void create() {

        Bullet.init();

        cam = new OrthographicCamera(30, 30);
        cam.lookAt(0f, 1f, 0f);
        cam.near = 0f;
        cam.far = 500f;
        cam.update();

        this.stage = new ExampleStage();

        simulator = new SimpleSimulator();
        simulator.create();

    }

    @Override
    public void render() {

        stage.draw();
        stage.act();

        //simulator.simulate();

        // if added only the bullet part will be animated,
        // if not only scene2d
        // Gdx.gl.glClearColor(0f, 0f, 0f, 1.f);
        // Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);

        simulator.modelBatch.begin(cam);
        simulator.modelBatch.render(simulator.instances, simulator.environment);
        simulator.modelBatch.end();
    }

    public void resize(int width, int height) {}
    public void pause() {}
    public void resume() {}

    @Override
    public void dispose() {
        stage.dispose();
        simulator.dispose();
    }
}

我可能只是错过了渲染方法中的一个简单标志。如果我调用 Gdx.gl.glClear 方法,我只能看到其中一个。

我也想将子弹动画部分限制在屏幕上的特定区域,所以我想在舞台上拥有的其他元素不会被它挡住,但我还没有想出如何做到这一点。

第二

按照建议更改渲染方法中的顺序Tenfour04就可以了。
我只是在此处更新以将此问题标记为已回答。

    @Override
    public void render() {

        Gdx.input.setInputProcessor(stage);

        simulator.simulate();

        Gdx.gl.glClearColor(0f, 0f, 0f, 1.f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);

        stage.act();
        stage.draw();

        simulator.modelBatch.begin(cam);
        simulator.modelBatch.render(simulator.instances, simulator.environment);
        simulator.modelBatch.end();
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何结合scene2d和box2d?

来自分类Dev

如何结合scene2d和box2d?

来自分类Dev

使用libgdx和scene2d的Touchevents

来自分类Dev

Scene2d如何处理被触摸的演员?(LibGDX)

来自分类Dev

如何在Scene2d中制作UI动画?

来自分类Dev

如何使Scene2d窗口适合其内容?(Libgdx)

来自分类Dev

如何使用Libgdx Scene2d对话框?

来自分类Dev

更改actor的颜色和Alpha在Scene2D中不起作用

来自分类Dev

Libgdx Scene2d表和滚动窗格错误?

来自分类Dev

使用本机代码和Libgdx Scene2d选项的游戏菜单

来自分类Dev

LibGDX-FrameBuffer,Scene2D表和剪辑出现问题

来自分类Dev

Scene2D 中事件处理的捕获和正常阶段是什么?

来自分类Dev

如何使用libGDX更改Scene2D图像中的纹理?

来自分类Dev

如何在libgdx scene2d UI中绘制信息面板

来自分类Dev

如何使用libGDX更改Scene2D图像中的纹理?

来自分类Dev

Qt3D:如何将Scene2D缩放为与窗口相同的大小(像素方向)?

来自分类Dev

如何结合m2e和e(fx)剪辑?

来自分类Dev

如何将Retrofit 2与Realm和RxJava结合

来自分类Dev

如何结合 aurelia-materialize-bridge 和 sweetalert2

来自分类Dev

如何在没有scene2d的情况下检测是否已触摸纹理libgdx

来自分类Dev

如何在没有scene2d的情况下检测是否已触摸纹理libgdx

来自分类Dev

如何结合CUBE和ROLLUP?

来自分类Dev

如何结合crossProject和dependsOn

来自分类Dev

如何结合枚举和标志?

来自分类Dev

如何结合元素和属性?

来自分类Dev

如何结合Marked和MathJax

来自分类Dev

如何结合“值”和“合并”?

来自分类Dev

如何结合wget和grep

来自分类Dev

如何结合tryCatch和UseMethod?