我正在使用LibGDX开发一个自上而下的角色扮演游戏,并且正在创建一个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);
}其中region是TextureRegion
没有摄像头,一切都很好,所以我很困惑为什么纹理现在只按顺序渲染(我的瓷砖纹理渲染在实体下面)有人知道为什么会这样吗?如果你想看更多代码,我在github上也有这个:CLICK HERE
发布于 2014-09-06 09:54:36
我后来没有意识到这一点,但我逐行注释了许多呈现行,以查看是否可以找到错误所在。事实证明,我制作的调试工具(使用ShapeRenderer呈现冲突边界)搞乱了它,因为显然,ShapeRenderer不能在batch.begin和batch.end之间使用
我是在this badlogicgames forum post的帮助下弄明白的
发布于 2014-09-06 00:01:31
我不能从代码中得到很多东西,但是你是在渲染结构的根上使用它吗?
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);https://stackoverflow.com/questions/25655218
复制相似问题