博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bat调用TexturePacker更新SpriteSheet
阅读量:6860 次
发布时间:2019-06-26

本文共 1730 字,大约阅读时间需要 5 分钟。

hot3.png

一款游戏会用到很多图片资源,通常我们会使用TexturePacker工具进行图片的拼接、压缩,为了考虑性能问题,单个SpriteSheet的尺寸不会设置的太大(最大1024 * 1024),这样就可能会有多个SpriteSheet。每当有图片资源需要更新时,操作起来会有点不方便。所以希望能通过bat来批量重新生成新的SpriteSheet

 

首先我们需要获取TexturePacker的安装目录,一般我们都会安装TexturePackerGUI工具,它实际运行起来还是调用TexturePacker.exe工具。因为软件环境因人而异可能存放的目录各不相同,这里通过读取注册表相关信息来避免此问题

@echo off echo "获取TexturePackerGUI注册表安装信息..." & echo. setlocal enabledelayedexpansionfor /f "skip=4 tokens=1,* delims=REG_SZ " %%a in ('reg query "HKEY_CLASSES_ROOT\Applications\TexturePackerGUI.exe\shell\Open\command" /ve') do (    set "str=%%b"         echo !str! & echo.         set "str=!str:"%%1"=!"         echo TexturePackerGUI的安装路径:!str! & echo.     for /f "tokens=1,* delims=" %%i in (!str!) do (        set "str=%%i"                 set "TexturePacker_Path=!str:TexturePackerGUI.exe=!TexturePacker.exe"                 echo !TexturePacker_Path! & echo.    ))  pause

 

在dos窗口下执行查询指令,得到结果如下图所示:

实际注册表的相关信息:

 

 

我们会发现,返回的结果中,前4行是无用的信息。然后以“REG_SZ ”作为分隔符进行字符串分隔。得到包含空格的路径信息:"G:\Program Files\TexturePacker\bin\TexturePackerGUI.exe" "%1"

通过set指令替换掉%1   

set "str=!str:"%%1"=!"

 

然后通过for /f "tokens=1,* delims=" %%i in (!str!) do () 来去除””及空格信息

 

之后就直接调用了TexturePacker.exe

echo "TexturePacker安装路径:%TexturePacker_Path%" & echo. "%TexturePacker_Path%"  batch_btn.tps"%TexturePacker_Path%"  batch_kuang.tps"%TexturePacker_Path%"  batch_left.tps"%TexturePacker_Path%"  batch_spt.tps"%TexturePacker_Path%"  batch_text.tps"%TexturePacker_Path%"  batch_expression.tps

 

下面附几张Texture Packer 的常用设置截图,

 

通常情况下,我们导出的纹理图片是RGBA8888格式,R、G、B、A各需要占用8个比特(1字节),所以一个像素总共需要4个字节表示。通常我们使用RGBA444来保存图片,不过需要注意设置一个参数来保证压缩后的图片尺寸大小不会变化。勾选“Allow free sizes”,否则使用导出的图片后界面会错位(因为空白区域被裁剪掉了>_<)

使用RGBA4444还需要注意的一个问题,就是选择压缩算法(抖动+通道)

 

转载于:https://my.oschina.net/robslove/blog/1812751

你可能感兴趣的文章
hdu 4251 划分树
查看>>
poj 1704 Georgia and Bob(阶梯博弈)
查看>>
JQuery中的$.ajax()
查看>>
js 幻灯片
查看>>
Keras序列模型学习
查看>>
[bzoj2809] 派遣
查看>>
Windows2003上使用IIS7 Express使用FastCgi运行php
查看>>
安装程序时 “向数据库写入数据时发生错误!”
查看>>
图文:高春辉和他的网站梦
查看>>
网页之间的参数传递
查看>>
初步学习Django-第四篇:views.PY文件详解
查看>>
OAuth2简易实战(四)-Github社交联合登录
查看>>
Netty学习大纲
查看>>
OC中的私有方法
查看>>
分享几段JavaScript
查看>>
C++中的多态和Objective-C中的“多态”
查看>>
js基础五
查看>>
构建执法阅读笔记01
查看>>
剑指offer:合并两个排序的链表
查看>>
1602液晶显示实验
查看>>