在Libdgx 中经常会对图片进行翻转,旋转处理,很对时候是对资源的复用,一下是本文对图片进行处理的效果:
region = Assets.testAtlas.findRegion("world1");
TextureRegion region1 = new TextureRegion(region);
TextureRegion region2 = new TextureRegion(region);
TextureRegion region3 = new TextureRegion(region);
翻转方法一:
使用 region3.flip(boolean, boolean) 进行上下左右翻转如image3
翻转方法二:
通过设置UV
region2.setV(region.getV2());
region2.setV2(region.getV());
region1.setU(region.getU2());
region1.setU2(region.getU());
这两种方法实质是一样的,都是通过setU setV setU2 setV2 实现翻转
值得注意的是,尽量避免直接对region进行翻转,Gdx底层通过Assets.testAtlas.findRegion("world1");方式,即使用AssetsManager 管理的纹理
都是定义成final类型,在别处使用的都是同一份内存。
图片旋转
如Imgae 4
使用batch 直接绘制资源,当然,可以翻转之后再进行绘制,绘制方法
batch.draw(region, x, y, originX, originY, width, height, scaleX, scaleY, rotation)
本文实现为
batch.draw(region, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScal