libgdx spritebatch不渲染纹理

时间:2014-09-03 23:38:33

标签: java camera libgdx render spritebatch

我正在使用LibGDX进行自上而下的RPG游戏,我正在为我的游戏创建一个Ortho ..相机。但是这样做,现在只渲染我的平铺纹理。这就是渲染代码的外观:

相机初始化为new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

(请注意,camera.调用实际上是world.update方法,我只是认为我会尽量减少此处所需的代码量。

更新/渲染:

camera.position.set(getPlayer().getPosition().x, getPlayer().getPosition().y, 0);
camera.update();
batch.setProjectionMatrix(world.getCamera().combined);
batch.begin();
world.render(batch);
batch.end();

世界的渲染方法最终称之为:

public void render(SpriteBatch batch, float x, float y, float w, float h) {
    batch.draw(region, x, y, w, h);
}

regionTextureRegion

的位置

没有相机,它一切正常,所以我很困惑为什么纹理现在只按顺序渲染(我的瓷砖纹理渲染在实体下面)有没有人知道为什么会这样?如果你想看到更多的代码,我也在我的github上有这个:CLICK HERE

2 个答案:

答案 0 :(得分:2)

我以后没有意识到这一点,但是我正在逐行评论很多渲染线,看看我是否能找到错误,事实证明我制作的调试工具(渲染了碰撞)使用ShapeRenderer)的界限搞砸了,因为很明显,ShapeRendererbatch.begin之间无法使用batch.end

我在this badlogicgames forum post

的帮助下想出来了

答案 1 :(得分:0)

无法从代码中获取更多信息,但您是否在渲染结构的根目录中使用它?

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