1

spriteBatchをLibGDXでレンダリングするのに苦労しています。デスクトップで実行すると表示されますが、Androidでは表示されません。レンダリングしようとしているスプライトは星の背景です。

デスクトップ: http: //i.stack.imgur.com/6a4m5.png

Android: 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);
}

私が省略している重要なことがあれば、コメントして知らせてください。ありがとう!

4

2 に答える 2

3

私は自分の問題を見つけました。私が使用した電話はOpenGL2.0をサポートしていなかっただけであることがわかりました。これを修正するために、すべてのテクスチャのサイズを2の累乗に変更し、構成設定をOpenGL1.1に変更しました。

于 2013-01-02T00:24:27.833 に答える
0

スプライトバッチを使用して自分で描画するのではなく、ステージの背景として「イメージ」アクターを使用してみてください。

于 2012-12-24T07:49:39.067 に答える