2

ステップを使用してUIを描画し始めた後に表示されたコードに問題があります。バッチで3つのものが描画され、ステージで2つのボタンが描画されていますが、「スプライト」は2つしかありません描かれた。コードは次のとおりです。

public void render(float delta) {
    Gdx.gl.glClearColor(0.95F, 0.95F, 0.95F, 0.95F);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    deltaTime = Gdx.graphics.getDeltaTime();

    camera.update();
    generalUpdate(touch, camera, deltaTime, pointer);
    bounce(deltaTime);

    stage.setCamera(camera);
    batch.setProjectionMatrix(camera.combined);

    batch.begin();
        batch.draw(Assets.spr_bg, 0, 0);
        batch.draw(Assets.spr_title, 540-Assets.spr_title.getWidth()/2, titleY-Assets.spr_title.getHeight()/2);
        Assets.font_small.draw(batch, "some text", 540-Assets.font_small.getBounds("(c)2014 HateStone Games").width/2, 1920-64-Assets.font_small.getBounds("(c) HateStone Games").height/2);
        stage.draw();
    batch.end();
}

描画されないのはテキスト「Some text」で、コメントアウトするとおかしくなり、タイトルスプライトも描画されず、ランダムな間隔で灰色のボックスが表示されます。

また、「stage.draw();」を動かすと バッチの外では描画されません

4

1 に答える 1

6

Stageには独自のがSpriteBatchあり、すべてを描画します。だからあなたbegin()SpriteBatchしばらくあなたの他の人SpriteBatchが描いています。したがって、呼び出すbatch.end()前に呼び出しstage.draw()ます。これで問題が解決するはずです。

于 2014-02-25T07:20:14.170 に答える