游戏开发中可能会经常用到tp打包图片,而gui打包的方式效率太低,这里我分享一下一个命令行打包脚本,
首先需要安装一下TP的命令行工具,然后要注意文件的目录结构,假设我们的项目总文件夹是project,我们在project下面建立两个文件夹,一个命名为originalImages,用来存放未打包的图片文件夹,另外一个为tools,放我们的打包脚本,注意存放未打包图片的文件夹名字 originalImages
不要打错了,打包后的图片会放在outImage这个文件夹,当然自己也可以在脚本里修改这个名字,下面给大家放一下演示的目录结构截图,脚本是用shell写的
还有一点请注意,我这里设置的是每张打包图片最大是2048,如果你的一个文件夹的图片太多,剩下的就不会打包,可以拆分成多个文件夹
#! /bin/bash
curr_dir=$(pwd)
preCurr_dir=$(cd `dirname $0`; cd ..;pwd )
if [ ! -d "$preCurr_dir/outImages" ]; then
mkdir $preCurr_dir/outImages
fi
if [ ! -d "$preCurr_dir/originalImages" ]; then
mkdir $preCurr_dir/originalImages
fi
#需要打包的图片目录,创建一个目录originalImages,把需要打包的图片文件夹放进去
imagepath=$preCurr_dir/originalImages
#打包输出目录
outPath=$preCurr_dir/outImages
TP=/usr/local/bin/TexturePacker
pack_textures() {
${TP} --smart-update\
--texture-format png\
--format cocos2d\
--data "$1".plist\
--sheet "$1".png\
--enable-rotation\
--scale 1\
--max-size 2048\
--opt RGBA8888\
--trim \
$1/*.png
}
for i in $imagepath/*
do
if [ -d $i ];then
pack_textures $i
fi
dir=$(basename $i)
if [ ! -d $outPath/$dir ]; then
mkdir $outPath/$dir
fi
outdir=$outPath/$dir
mv $i.plist $outdir
mv $i.png $outdir
done