我正在使用libgdx,如果我不尝试设置相机的位置,我的游戏渲染完全正常。但是,如果我只添加这一行代码:camera.position.set(0f,0f,0f),它会导致我的所有精灵都显示白线。
在:
添加一行代码后:camera.postion.set(0f,0f,0f)
这些图像是随机地图,因此布局不同。唯一改变的是白线。相机确实转到了位置(0,0,0)。 可能是什么导致了这个?它基本上是在我的精灵顶部添加1个白色像素。我有一个512x512瓷砖板,里面有64x64瓷砖。这是相关代码
Screen类内:
@Override
public void show()
{
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
this.camera = new OrthographicCamera(w, h);
this.camera.setToOrtho(true, w, h);
this.stage.setCamera(this.camera);
camera.update();
this.input = new InputHandler(this.camera);
Gdx.input.setInputProcessor(this.input);
dungeon = new Dungeon(DungeonGenerator.generateDungeonMap());
renderer = new OrthogonalTiledMapRenderer(dungeon);
this.player = new Player(dungeon);
this.stage.addActor(this.player);
camera.position.set(0f, 0f, 0f);
}
@Override
public void render(float delta)
{
Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
renderer.setView(camera);
renderer.render();
batch.begin();
font.draw(batch, "FPS: " + Gdx.graphics.getFramesPerSecond(), 10, 20);
font.draw(batch, "camera: " + camera.position, 10, 50);
font.draw(batch, "Stage:" + this.stage.getCamera().position, 10, 80);
batch.end();
//update and render stage actors
stage.act(delta);
stage.draw();
}
答案 0 :(得分:1)
我明白了。问题是由我的spritesheet具有白色背景引起的。在对我的spritesheet进行一些更改后,我必须导出工作表而不隐藏我的白色背景。我刚刚将alpha背景添加回spritesheet,它再次正常工作。