Libgdx - 没有实现Screen

时间:2016-04-06 18:32:52

标签: android libgdx

public class MenuState extends State {
private OrthographicCamera camera;
private Viewport viewport;
private MenuButtons playButton;

public MenuState(GameStateManager gsm, int tryscore, AssetsClass assetsClass, PreferencesHelper preferencesHelper) {
    super(gsm);

    camera = new OrthographicCamera();
    viewport = new FitViewport(ButtonCrash.V_WIDTH, ButtonCrash.V_HEIGHT, camera);
    viewport.apply();

    playButton = new MenuButtons(assetsClass.getManager().get("mainmenu/button_play.png", Texture.class), 1);
    playButton.getButton().setSize(200, 200);
    playButton.getButton().setPosition(-100, -100);
}
@Override
protected void handlingInput() {

}

@Override
public void update(float delta) {
    camera.update();
}

@Override
public void render(SpriteBatch sb) {
    sb.setProjectionMatrix(camera.combined);
    sb.begin();
    playButton.getButton().draw(sb);
    sb.end();
}

@Override
public void dispose() {

}

}

相机效果很好,但是视口没有,就像它们不在那里一样!

我实际上复制了我在构造函数中尝试过的所有代码:

viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

但似乎是因为我没有实现Screen,代码不起作用。问题是我在没有游戏和屏幕界面的情况下制作了游戏,但制作了自己的State类。这可能是什么问题?

1 个答案:

答案 0 :(得分:0)

据我所知,你必须在渲染之前应用视口。 所以把

viewport.apply();

在render()的开头;在设置矩阵之前。

欢呼声