繁体   English   中英

libgdx spritebatch不渲染纹理

[英]libgdx spritebatch not rendering textures

我正在使用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();

世界上的render方法最终会调用以下代码:

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

regionTextureRegion

没有摄像头,一切都很好,所以我对为什么现在仅按顺序渲染纹理感到困惑(我的瓷砖纹理在实体下方渲染)有人知道为什么会这样吗? 如果您想查看更多代码,请在我的github上找到: CLICK HERE

后来我没有意识到这一点,但是我逐行注释了很多渲染线,以查看是否可以找到错误的地方,结果证明我制作了调试工具(使用ShapeRenderer渲染碰撞边界)被搞乱它,因为很显然,一个ShapeRenderer不能之间使用batch.beginbatch.end

我在此badlogicgames论坛帖子的帮助下弄清楚了这一点

不能从代码中得到太多好处,但是您是否在渲染结构的根部使用它?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM