写了一个小工具,拿出分享分享。
先说一下背景吧。
项目中为了重复利用图片资源,把json和图片都放在Resource/ui目录,但有一些图片,比如说道具,是在Resource/images/item下面,
所以,在CocosStudio中编辑完UI之后,需要把资源的相对路径改到item目录,因此就写了这个脚本。
--------------------------------------------------------------------
-- add by 寒风 on 2014/12/26
-- UI中用到了一个资源,路径不在ui下面
-- 此脚本用于矫正资源路径
--------------------------------------------------------------------
local function getFile(file_name)
local f,err = io.open(file_name, 'r')
if not f then
print(err)
return nil
end
local string = f:read("*all")
f:close()
return string
end
local function replace(file_name, content, src, dst)
content, count = string.gsub(content, src, dst)
print(file_name, src, count)
return content
end
local function writeFile(file_name,string)
local f = assert(io.open(file_name, 'w+'))
f:write(string)
f:close()
end
local function main()
local configs = {
{"\"path\": \"1jijyd.png\"", "\"path\": \"../images/item/1jijyd.png\""},
{"\"path\": \"chujishengshi.png\"", "\"path\": \"../images/ship/chujishengshi.png\""},
{"\"path\": \"fanpaidazuozhan_0.png\"", "\"path\": \"../images/ui/tiaozhan/fanpaidazuozhan_0.png\""},
{"\"path\": \"guishouzhaofan_0.png\"", "\"path\": \"../images/ui/tiaozhan/guishouzhaofan_0.png\""},
{"\"path\": \"Icon_chongwujinghua.png\"", "\"path\": \"../images/item/Icon_chongwujinghua.png\""},
{"\"path\": \"mofjt.png\"", "\"path\": \"../images/item/mofjt.png\""},
{"\"path\": \"Icon_skill_ATK.png\"", "\"path\": \"../images/ui/feichuanjineng/Icon_skill_ATK.png\""},
{"\"path\": \"Icon_skill_crystal2.png\"", "\"path\": \"../images/ui/feichuanjineng/Icon_skill_crystal2.png\""},
{"\"path\": \"Icon_skill_fire.png\"", "\"path\": \"../images/ui/feichuanjineng/Icon_skill_fire.png\""},
{"\"path\": \"juedizhizhan_0.png\"", "\"path\": \"../images/ui/tiaozhan/juedizhizhan_0.png\""},
{"\"path\": \"miaomiaoweisi1.png\"", "\"path\": \"../images/ui/touxiang/miaomiaoweisi1.png\""},
{"\"path\": \"miaomiaoweisi2.png\"", "\"path\": \"../images/ui/touxiang/miaomiaoweisi2.png\""},
{"\"path\": \"miaomiaoweisi3.png\"", "\"path\": \"../images/ui/touxiang/miaomiaoweisi3.png\""},
{"\"path\": \"miaomiaozhanjian1.png\"", "\"path\": \"../images/ui/touxiang/miaomiaozhanjian1.png\""},
{"\"path\": \"monengshizhu1.png\"", "\"path\": \"../images/ui/touxiang/monengshizhu1.png\""},
{"\"path\": \"shandiandun1.png\"", "\"path\": \"../images/ui/touxiang/shandiandun1.png\""},
}
local file_names = {
"ui/bangzhu_UI_1.json",
"ui/bangzhu_shangdian_UI_1.json",
"ui/bangzhu_mojing_UI_1.json",
"ui/bangzhu_meiritiaozhan_UI_1.json",
"ui/bangzhu_emota_UI_1.json",
"ui/bangzhu_chongwupeiyang_UI_1.json",
"ui/bangzhu_chongwu_UI_1.json",
}
for k, file_name in pairs(file_names) do
local content = getFile(file_name)
if content then
for k, configItem in pairs(configs) do
content = replace(file_name, content, configItem[1], configItem[2])
end
writeFile(file_name, content)
end
end
end
main()
file_names中保存的是需要修改路径的json文件;
configs保存的是需要修改资源的原始路径和目标路径。
原文地址:http://blog.csdn.net/xufeng0991/article/details/42174255