LoginSignup
0

More than 5 years have passed since last update.

libGDXでの画像を切り取る方法

Last updated at Posted at 2017-02-06

AtlasSpriteなどを切り取る方法

AtlasSpriteなどの画像を表現するクラスは、setScaleやsetSizeといった、大きさを調整するメソッドではうまく調整できませんでした。
というのもsetScaleで大きさは調整可能ですが、もちろん画像比率も変更されてしまいます。
画像比率をキープしたまま大きさを小さくリサイズしたい場合などどうすればいいでしょうか。
scaleはそのままに、画像をうまく切りたい場合、どうするか。

方法

drawメソッドをオーバーライドします。

コード

大体、イメージ的にはこんな感じでやるとうまくいきます。drawメソッド内で毎フレーム描画領域を絞る感じです。

AssetManager manager = new AssetManager();
TextureAtlas atlas = manager.get("hoge",TextureAtlas.class);
TextureAtlas.AtlasSprite sprite = new TextureAtlas.AtlasSprite(atlas.findRegion("hoge")){
   @Override
   public void draw(Batch batch) {
       batch.draw(this, this.getX(), this.getY(), this.getOriginX(), this.getOriginY(), 
                this.getWidth() /2f, this.getHeight()/2f, // 縦横を半分にする
                this.getScaleX(), this.getScaleY(), this.getRotation());
   }
};

参考URL

How to resize a sprite in Libgdx?

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0