2016-03-27 10 views
1

libgdxに問題があります。ズームイン、ズームアウトについての簡単な例を作成したいのですが、orthographicCameraは何もしていません。Libgdx、OrthographicCameraが機能しない(ズームイン、ズームアウト)

マイコード:

public class HitTheGreenBlock extends ApplicationAdapter { 

    public static int WIDTH, HEIGHT; 

    SpriteBatch batch; 
    OrthographicCamera orthographicCamera; 

    private StateManager stateManager; 

    @Override 
    public void create() { 

     WIDTH = Gdx.graphics.getWidth(); 
     HEIGHT = Gdx.graphics.getHeight(); 

     batch = new SpriteBatch(); 

     orthographicCamera = new OrthographicCamera(); 
     orthographicCamera.translate(WIDTH /20 , HEIGHT/20); 
     orthographicCamera.update(); 

     stateManager = new StateManager(); 

    } 

    @Override 
    public void render() { 
     Gdx.gl.glClearColor(1, 0.78f, 0.25f, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

     stateManager.update(Gdx.graphics.getDeltaTime()); 
     stateManager.draw(batch); 

    } 
} 

そして、画面に画像を描画するクラス:

public class PlayState extends MainState{ 

    public PlayState(StateManager stateManager){ 
     super(stateManager); 
    } 

    private int width,height; 

    public void init() { 
     width = 2 * HitTheGreenBlock.WIDTH/3; 
     height = width; 
     ImageLoader.load(); 

    } 
    public void update(float dt) { 


    } 
    public void draw(SpriteBatch spriteBatch) { 

     spriteBatch.begin(); 

     spriteBatch.draw(ImageLoader.greenRegion, (Gdx.graphics.getWidth() - width)/2, Gdx.graphics.getHeight()/5, width, height); 

     spriteBatch.end(); 

    } 
    public void handleInput() { 

    } 
    public void dispose() { 

    } 
} 

私はHitTheGreenBlock.classからPlayState.classにspriteBatchを送ります。このラインに

​​

私はこの行を変更し

 orthographicCamera.translate(WIDTH /20 , HEIGHT/20); 

しかしorthographicCameraは何もして画像サイズが変更されていませんやって。

私のコードの問題点は何ですか?

* 3つ以上のクラスがあります。必要な場合は追加することもできます。

答えて

1

spriteBatchでprojection.comをcamera.combinedに設定しようとしましたか? spriteBatch.beginの前に、spriteBatch.setProjectionMatrix(camera.combined);

これを行うと、カメラに対してレンダリングするようにスプライトバッチに指示されます。

+0

私はその行を追加しましたが、今回は背景色以外の画面に何も表示されません。 –

+0

私はsetOrtho()を使用しました。問題を解決しました。 –

+0

良い物を描くときは必ず投影行列を設定してください。非常に重要です。 – Wyatt

関連する問題