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つ以上のクラスがあります。必要な場合は追加することもできます。
私はその行を追加しましたが、今回は背景色以外の画面に何も表示されません。 –
私はsetOrtho()を使用しました。問題を解決しました。 –
良い物を描くときは必ず投影行列を設定してください。非常に重要です。 – Wyatt