【发布时间】:2014-01-30 12:42:52
【问题描述】:
我确定我在这里遗漏了一些非常明显的东西,但我是初学者,所以请不要压垮我。我的问题是我有一个视口小于屏幕的舞台。现在我还想直接使用 Sprite.draw(SpriteBatch) 在屏幕上绘制一个 Sprite。 Sprite 的位置和舞台不重叠。舞台绘制得很好,但 Sprite 不可见。当我在渲染方法中注释掉 stage.draw() 部分时,Sprite 是可见的。
代码: 这是我的渲染方法:
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.851f, 0.894f, 0.992f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
stage.act(delta);
batch.setProjectionMatrix(camera.combined);
batch.begin();
stage.draw();
logoSprite.draw(batch);
batch.end();
}
在这里,我初始化了相机和舞台(stageHeight 是一个只有屏幕高度的 3/5* 的 int):
camera = new OrthographicCamera();
camera.setToOrtho(false, SwapItGame.WIDTH, SwapItGame.HEIGHT);
stage = new Stage();
stage.setViewport(1080, stageHeight, true, 0, 0, 1080, stageHeight); //The button part of the menu takes up 3 fifth of the Height of hte screen
stage.setCamera(camera);
这里我初始化了我的Sprite(sprite的位置值比较复杂,忽略它,肯定在舞台上方):
logoSprite = skin.getSprite("logo");
logoSprite.setPosition((SwapItGame.WIDTH-logoSprite.getWidth())/2, (SwapItGame.HEIGHT-stageHeight-logoSprite.getHeight())/2 + stageHeight);
精灵和舞台不可能在同一个屏幕上吗?还是我做错了什么?
【问题讨论】:
-
发布代码...否则我们需要查看玻璃球,看看我们能猜到什么
-
比较长,如果对你有帮助我当然会做。
-
然后向我们展示渲染的部分和添加精灵的部分。没有代码,我们无法帮助您,因为我们看不到您做错了什么。
-
@MGDroid 我这样做了,但没有帮助