我很难在LibGDX中渲染spriteBatch。它显示我在桌面上运行它,但不在Android上运行。我精灵,我试图渲染是明星背景。
桌面: http://i.stack.imgur.com/6a4m5.png
机器人: http://i.stack.imgur.com/mOvo2.png
这是我的代码:
@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
Gdx.gl.glClearColor(0, 0, 0, 1);
update(delta);
spriteBatchBack.begin();
sprite.draw(spriteBatchBack);
spriteBatchBack.end();
stage.act(delta);
stage.draw();
}
public void update(float delta) {
scrollTimer += delta * 0.03f;
if (scrollTimer > 1.0f)
scrollTimer = 0.0f;
sprite.setU(scrollTimer);
sprite.setU2(scrollTimer + 1);
}
int width = Gdx.graphics.getWidth();
int height = Gdx.graphics.getHeight();
@Override
public void resize(int width, int height) {
if (stage == null) {
stage = new Stage(width, height, true);
stage.clear();
addMusic();
addBackground();
addScence();
stage.addActor(play);
stage.addActor(options);
stage.addActor(quit);
stage.addActor(logoHead);
stage.addActor(lblPlay);
stage.addActor(lblOptions);
stage.addActor(lblQuit);
}
Gdx.input.setInputProcessor(stage);
}
public void addBackground() {
spriteBatchBack = new SpriteBatch();
Texture spriteTexture = new Texture(
Gdx.files.internal("pictures/menuBackground.png"));
spriteTexture.setWrap(TextureWrap.Repeat, TextureWrap.Repeat);
sprite = new Sprite(spriteTexture, 0, 0, spriteTexture.getWidth(), spriteTexture.getHeight());
sprite.setSize(width, height);
}
如果我遗漏了任何重要内容,请发表评论并告诉我。谢谢!
答案 0 :(得分:3)
我发现了我的问题。事实证明,我使用的手机并不支持Open GL 2.0。为了解决这个问题,我将所有纹理的大小调整为2的幂,并将配置设置更改为Open GL 1.1。
答案 1 :(得分:0)
尝试在舞台上使用“Image”actor作为背景,而不是使用spritebatch并自己画画。