我正在使用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);
}
region
是TextureRegion
没有相机,它一切正常,所以我很困惑为什么纹理现在只按顺序渲染(我的瓷砖纹理渲染在实体下面)有没有人知道为什么会这样?如果你想看到更多的代码,我也在我的github上有这个:CLICK HERE
答案 0 :(得分:2)
我以后没有意识到这一点,但是我正在逐行评论很多渲染线,看看我是否能找到错误,事实证明我制作的调试工具(渲染了碰撞)使用ShapeRenderer
)的界限搞砸了,因为很明显,ShapeRenderer
和batch.begin
之间无法使用batch.end
答案 1 :(得分:0)
无法从代码中获取更多信息,但您是否在渲染结构的根目录中使用它?
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);