2016-04-06 8 views
0
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() { 

} 

}Libgdx - не реализует экран

А также камера работает хорошо, но видовых нет, то, как они не там!

Я фактически скопировал все о коде, я даже пытался в конструкторе:

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

Но кажется, как, потому что я не осуществляет экрана код не работает. Дело в том, что я сделал свою игру без интерфейса «Игра и экран», но сделал свой собственный государственный класс. Что может быть проблемой здесь?

+0

Любые конкретные причины, по которым вы сделали свой собственный государственный класс, когда LibGdx ahs отличный? –

+0

Убедитесь, что вы вызываете viewport.update в методе изменения размера. Похоже, ваш государственный класс нуждается в этом. – Tenfour04

+0

У вас есть метод 'resize()'? –

ответ

0

Вы должны применить видовое окно перед рендерингом, насколько я знаю. Так положил

viewport.apply(); 

в начале рендеринге(); перед установкой матрицы.

ура

Смежные вопросы