libgdx学习之TexturePacker

       由于android手机计算资源有限,cpu、gpu的时候都十分宝贵,因此游戏中用到的图片分成单个进行加载以及渲染是一件非常浪费资源的事情,因此需要将多个小图片合并到一个大图片中,达到一次加载多次使用的目的,这个合并原理与web页面设计中合并图片的道理类似,但是手工合并这些文件显然是一件很痛苦的事情,尤其后期需要改动的时候简直是灾难了。

       libgdx提供了一个很好的工具来解决这个问题TexturePacker,如果在使用最新版libgdx时会看到两个,一个是TexturePacker,一个是TexturePacker2,第一个已经被弃用,现在使用的是TexturePacker2,两者的区别可以见http://www.badlogicgames.com/wordpress/?p=2495

TexturePacker2的使用非常方便,代码示例

public static void main(String[] args){
		Settings settings=new Settings();
		settings.alias=true;
		settings.flattenPaths=true;
		TexturePacker2.process(settings, "D:\\img", "D:\\img\\output","macken.pack");
}

方法定义

static public void process (Settings settings, String input, String output, String packFileName);

 

 运行过程

扫描input文件下的图片合并成一个文件,默认情况下会将一个文件下的图片合并成一个图片大文件,默认图片的size是1024*1024,超过大小会分成两个图片,可以通过修改settings的属性设定合并过程以及输出的文件属性,settings的常用属性

{
        pot: true,
        paddingX: 2,
        paddingY: 2,
        duplicatePadding: true,
        edgePadding: true,
        rotation: false,
        minWidth: 16,
        minHeight: 16,
        maxWidth: 1024,
        maxHeight: 1024,
        stripWhitespaceX: false,
        stripWhitespaceY: false,
        alphaThreshold: 0,
        filterMin: Nearest,
        filterMag: Nearest,
        wrapX: ClampToEdge,
        wrapY: ClampToEdge,
        format: RGBA8888,
        alias: true,
        outputFormat: png,
        jpegQuality: 0.9,
        ignoreBlankImages: true,
        fast: false,
        debug: false,
        combineSubdirectories: false,
        jsonOutput: true,
        flattenPaths: false
}

 

TextureAtlas

对于TexturePacker合成的图片,使用TextureAtlas读取,读取代码示例

TextureAtlas atlas=new TextureAtlas(Gdx.files.internal("macken.pack"));
TextureRegion text=(TextureRegion)atlas.findRegion("imagename");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值