2016-04-06 2 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()); 

をしかし、それは、私は、コードが動作しない画面を実装しておりませんので、などのようです。ゲームとスクリーンのインターフェースを使わずに自分のゲームを作りましたが、自分のStateクラスを作りました。ここで何が問題だろうか?

+0

LibGdxが素晴らしいものであるときに独自の状態クラスを作った特別な理由はありますか? –

+0

resizeメソッドでviewport.updateを呼び出すようにしてください。あなたのStateクラスが必要とするように見えます。 – Tenfour04

+0

'resize()'メソッドが実装されていますか? –

答えて

0

私が知る限り、表示する前にビューポートを適用する必要があります。 は、だからあなたのレンダリング()の先頭に

viewport.apply(); 

を置きます。行列を設定する前に

歓声

関連する問題