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类。这可能是什么问题?
答案 0 :(得分:0)
据我所知,你必须在渲染之前应用视口。 所以把
viewport.apply();
在render()的开头;在设置矩阵之前。
欢呼声