簡體   English   中英

LIBGDX-舞台不吸引演員

[英]LIBGDX - Stage not drawing actors

我試圖繪制兩個按鈕,但是舞台出現問題。

ModeGameView(ScreenAdapter next_screen) {
    super(next_screen);

    atlas = new TextureAtlas("buttons.txt");
    background = atlas.createSprite("background");
    title = atlas.createSprite("cluedo");
    title.scale((float) 1);
    size = (title.getHeight() + 100);
    singleplayer = atlas.createSprite("singleplayer");
    singleplayer.setCenterX(500);
    multiplayer = atlas.createSprite("multiplayer");
    batch = new SpriteBatch();
    camera = new OrthographicCamera();
    viewport = new FitViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), camera);
    viewport.apply();
    camera.position.set(camera.viewportWidth / 2, camera.viewportHeight / 2, 0);
    camera.update();
    stage = new Stage();

}

@Override
public ScreenAdapter renderAndUpdate(float delta) {
    this.render(delta);
    return this;
}

@Override
public void show() {

    Gdx.input.setInputProcessor(stage);
    Drawable playDrawable = new SpriteDrawable(singleplayer);
    singleplayerButton = new ImageButton(playDrawable);
    Drawable exitDrawable = new SpriteDrawable(multiplayer);
    multiplayerButton = new ImageButton(exitDrawable);
    singleplayerButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            Cluedo.getInstance().setCurrentState(new SinglePlayerView(Cluedo.getInstance().getGameView()));
        }
    });
    multiplayerButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            Cluedo.getInstance().setCurrentState(new MultiplayerView(Cluedo.getInstance().getGameView()));
        }
    });
    stage.addActor(singleplayerButton);
    stage.addActor(multiplayerButton);
}

@Override
public void render(float delta) {
    Gdx.gl.glClearColor(.1f, .12f, .16f, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    batch.begin();
    background.draw(batch);
    title.setPosition((Gdx.graphics.getWidth() - title.getWidth()) / 2, Gdx.graphics.getHeight() - size);
    title.draw(batch);
    batch.end();
    stage.setDebugAll(true);
    stage.act();
    stage.draw();
}

當我嘗試stage.draw()時,它什么也沒畫。 我創建了兩個精靈,然后創建了按鈕。 在渲染中,背景和標題圖有效,但舞台無效。

我現在不知道該怎么辦,幫幫我!!!

嘗試在舞台構造器上設置視口,並設置可繪制對象的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM