cocos2dx lua 一键资源管理PowerShell脚本实现
特别说明 此管理脚本不包含图片资源加密,热更新资源文件列表是md5 和 文件路径构成的txt,如下

脚本文件是放在和res src 同级的文件夹里面


脚本内容如下
clear
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
$StartTime = Get-Date
$CurrentPath = (Get-Location).Path + "\d"
$CurrentPath
Write-Host "start please wait !"
### step 1 删除目标资源生成目录
if (Test-Path -Path ./d/src )
{
Remove-Item -Path ./d/src -Recurse
} ### step2 加密lua文件并放到目标目录
cocos luacompile -s ..\src -d .\d\src -e -k GD432LXCVLXXXXXX -b mahjongxxxxxxxxx --disable-compile
#3打印完成提示
Write-Host "compile and move src finish" ### step 3 移动资源文件
if (Test-Path -Path ./d/res )
{
Remove-Item -Path ./d/res -Recurse
}
Copy-Item -Path ..\res -Destination .\d -Recurse -Force
Write-Host "move res file finish" ### step 4 生成MD5文件
if (Test-Path -Path ./d/newUpdateResList1.txt )
{
Remove-Item -Path ./d/newUpdateResList1.txt -Force
}
Get-ChildItem -Path ./d -Recurse | Get-FileHash -Algorithm MD5 | ForEach-Object{ $_.Hash + " "+ (($_.Path -replace ".*\\d\\","\") -replace "\\","/") >> ./d/newUpdateResList1.txt }
Write-Host "make md5 finish" #把utf-8-bom 格式的md5文件转换成 utf-8
$Path = (Get-Location).Path+"\d\newUpdateResList1.txt"
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
$MyFile = Get-Content -Path .\d\newUpdateResList1.txt
[System.IO.File]::WriteAllLines($Path, $MyFile, $Utf8NoBomEncoding) ### step 5 导出差异文件
if ( Test-Path -Path .\newUpdateResList1.txt )
{
$fileCounts = Get-Content -Path .\d\newUpdateResList1.txt
Write-Host ("new md5 file total line " + $fileCounts.Count)
$NewHashFiles = @{}
for( $idx = 0 ; $idx -lt $fileCounts.Count ; $idx++ )
{
$line = $fileCounts[$idx] -split " "
$NewHashFiles[$line[1]] = $line[0]
}
Write-Host ("after hash mapping total line " + $NewHashFiles.Count) $fileCounts = Get-Content -Path .\newUpdateResList1.txt
Write-Host ("old md5 file total line " + $fileCounts.Count)
$OldHashFiles = @{}
for( $idx = 0 ; $idx -lt $fileCounts.Count ; $idx++ )
{
$line = $fileCounts[$idx] -split " "
$OldHashFiles[$line[1]] = $line[0]
}
Write-Host ("after hash mapping total line " + $OldHashFiles.Count) $dirrentHash = @{}
foreach($key in $NewHashFiles.Keys)
{
if ( $OldHashFiles.ContainsKey($key) )
{
if ( $OldHashFiles[$key] -ne $NewHashFiles[$key] )
{
$dirrentHash[$key] = $NewHashFiles[$key]
}
}
else
{
$dirrentHash[$key] = $NewHashFiles[$key]
}
} if ( Test-Path -Path .\c )
{
Remove-Item -Path .\c -Recurse -Force
} $noOutPut = New-Item -ItemType directory ./c -Force Write-Host ""
$dirPath = (Get-Location).ToString() + "\d" -replace "\\","/"
foreach($key in $dirrentHash.Keys)
{
$sourcePath = $dirPath+$key
$targetPath = ".\c"+$key
$sourcePath
$pathParent = Split-Path $targetPath -Parent
if( -not (Test-Path -Path $pathParent) )
{
$noOutPut = New-Item -ItemType directory $pathParent -Force
}
Copy-Item -Path $sourcePath -Destination $targetPath -Force
}
Write-Host "" Copy-Item -Path .\d\newUpdateResList1.txt -Destination .\c -Force
} Write-Host ("total spend time "+ (((Get-Date) - $StartTime).TotalSeconds).ToString() +"s") pause
其它格式的热更新资源列表文件 改改应该也可以用,PowerShell还没入门,写的不好的地方请见谅。
cocos2dx lua 一键资源管理PowerShell脚本实现的更多相关文章
- Cocos2d-x教程(26)-Cocos2d-x + Lua脚本实现大地图缩放功能
欢迎增加 Cocos2d-x 交流群: 193411763 视频教程地址:http://www.tudou.com/programs/view/qRiOfppMghM/ 转载请注明原文出处:http: ...
- cocos2d-x lua脚本开发 1
自从开始关注OpenResty之后,逐渐关注Lua语言,发现这个语言真真是容易让人喜爱的语言.偶然间发现了cocos2d-x,还支持lua,所以果断尝试一下. 这里是在cocos2d-x官方网站下载了 ...
- cocos2dx lua 热加载实现
[Q]原创 2015-08-30 在公司使用cocos2dx+lua 开发游戏有一段时间了,刚好lua的热更新交给我负责.以前热更新的lua脚本大部分都是在下载之后加载.最近策划又有新需求,需要在游戏 ...
- 有关PowerShell脚本你必须知道的十个基本概念
1.PS1文件 一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名 ...
- cocos2d-x lua 学习笔记(1) -- 环境结构
Cocos2d-x 3.0超过环境的版本号来建立和前Cocos2d-x 2.0 差异较大的版本,从同时Cocos2d-x 3.0项目打包成apkAndroid的应用程序文件,步骤,构建环境有些乏味安德 ...
- Cocos2d-x Lua 阅读Csv文件,使用数据更方便
在我的书或出售之前,我的源代码,有Csvshadow文件. 也许这是偏见.我与工作将是最长的轮廓Csv,所以,我会帮助不大喜欢它的游戏. Csv文件,非常格式easy,也就是说,一个数据线,字段之间用 ...
- 【cocos2d-x + Lua(1) 绑定Lua并使用tolua++】
为什么要使用Lua进行游戏开发?转载请注明出处http://www.cnblogs.com/zisou/p/cocos2dx-lua1.html 上面一个问题我觉得在我们使用Lua之前需要深入思考的, ...
- cocos2d-x lua 学习笔记(1) -- 环境搭建
Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后, ...
- 创建cocos2d-x+lua项目
1> 创建cocos2d-x+lua项目 进入到cocos2d-x-2.1.5\tools\project-creator文件夹运行下面命令: python create_project ...
随机推荐
- JavaScript周报#183
This week’s JavaScript news Read this issue on the Web | Issue Archive JavaScript Weekly Issue 183Ma ...
- JavaScript初学
今天学习了js的基础知识,自我归纳如下: 第一部分:js变量的声明和引入 js声明1-直接声明js代码块,使用<script></script> 2-引入外部声明,即创建一个 ...
- Django实现验证码
简单搞定生成验证码: 1.views.py from io import BytesIO import random from PIL import Image,ImageDraw,ImageFont ...
- js判断是手机还是PC端
有时接触一些手机上的适应,需要知道是pc 还是移动端 function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = [ ...
- webstorm 打开后 一直停留在scanning files to index....,或跳出内存不够的提示框
用着有时会这样,超级卡, 网上搜了下,原来如此,记录下,免得忘了. ------------------------- 说明: 在npm install 后,会出现Scanning files to ...
- Google APAC----Africa 2010, Qualification Round(Problem C. T9 Spelling)----Perl 解法
原题地址链接:https://code.google.com/codejam/contest/351101/dashboard#s=p2 问题描述: Problem The Latin alphabe ...
- Microsoft Toolkit.exe激活office 2010方法
1.双击打开激活工具 2.点击下方的office图标. 3.选择Activation标签,下拉选择AutoKMS,点击Install,完成后点击Activate,即可.
- 【眼见为实】自己动手实践理解数据库REPEATABLE READ && Next-Key Lock
[REPEATABLE READ] 首先设置数据库隔离级别为可重复读(REPEATABLE READ): set global transaction isolation level REPEATAB ...
- [翻译] JTSlideShadowAnimation
JTSlideShadowAnimation 效果图: JTSlideShadowAnimation allow you to reproduce the famous "slide to ...
- 使用RQShineLabel
使用RQShineLabel https://github.com/zipme/RQShineLabel 最终效果: 源码: // // RootViewController.m // UseText ...