繁体   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