ひらしょー本では苦労してる画像の描画がこんなあっさりできた… すごいなー
今日のlibGDX目次
http://snoopopo.hatenablog.com/entry/2015/04/27/220545
今日のテーマ:画像を表示する
今日も↑を見させて頂き、画像を表示します。
画像ファイルを置く
プロジェクトがあるフォルダの直下にimgフォルダをきって、適当な画像を格納します.
eclipse上で実行したときのカレントディレクトリは、 プロジェクトフォルダの位置だ。
これやればすぐわかる.ってわけでメモ.
http://snoopopo.hatenablog.com/entry/2015/04/29/112310
画像を表示する
前回作った com.badlogic.gdx.ApplicationListener を実装した MainListener クラスのメソッドに 画像を表示するためのソースを追記していきます。
まだ短いので全部とりあえず載せる.
・MainListener
package study; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; public class MainListener implements ApplicationListener{ Texture texture; Texture texture2; SpriteBatch batch; @Override public void create() { System.out.println("create"); batch = new SpriteBatch(); //画像ファイル texture = new Texture("img\\snoopopo-.png"); texture2 = new Texture("img\\kinchan_left.gif"); } @Override public void resize(int w, int h) { System.out.println("resize"+w+","+h); } @Override public void render() { Gdx.gl.glClearColor(0, 0, 0.2f, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); batch.draw(texture, 150, 200); batch.draw(texture2, 100, 150); batch.end(); } @Override public void pause() { System.out.println("pause"); } @Override public void resume() { System.out.println("resume"); } @Override public void dispose() { System.out.println("dispose"); } }
画像の読み込み
com.badlogic.gdx.graphics.Texture クラスのインスタンス生成時に画像ファイル名を渡すだけで読み込んでくれる.
@Override public void create() { System.out.println("create"); batch = new SpriteBatch(); //画像ファイル texture = new Texture("img\\snoopopo-.png"); texture2 = new Texture("img\\kinchan_left.gif"); }
表示している部分
@Override public void render() { Gdx.gl.glClearColor(0, 0, 0.2f, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); batch.draw(texture, 150, 200); batch.draw(texture2, 100, 150); batch.end(); }
com.badlogic.gdx.graphics.g2d.SpriteBatch クラスのbegin()メソッドからend()メソッドの間に書くのがお約束みたいだ.
libGDXは左下が(0,0) らしい.
画像を重なった場合は後に描画されたものが上になっている.
下の例で言うと、texture2 変数が保持しているkinchan_left.gif という画像が手前に表示されています。