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 ...
随机推荐
- css3 常用动画 随笔
/* animation */.a-bounce,.a-flip,.a-flash,.a-shake,.a-swing,.a-wobble,.a-ring{-webkit-animation:1s e ...
- websocket协议及案例
WebSocket是一种用于在服务器与客户端之间实现高效的双向通信的机制.可以解决数据实时性要求比较高的应用,比如:在线聊天,在线教育,炒股或定位等. 一:websocket产生背景: 为了解决这种实 ...
- MvcForum中文版+PostgreSql源码下载
演示地址:http://bbs.hfenxiao.com 因为种处原因在家休假,闲来无事,便将去年关注的一个基于asp.net mvc论坛程序拿出来做了一些调整. 据说PostgreSql是世界上功能 ...
- 原生JavaScript插件开发[转]
一起学习下 插件的开发,原生的. 看了这文章 JavaScript插件开发从入门到精通系列---原生JavaScript插件开发 附上 读完小结: 看了下,比较小白的方式就是把一些代码,放到一个单独的 ...
- Hadoop & Spark & Hive & HBase
Hadoop: http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-common/SingleCluster.html bi ...
- Mac安装Dart的SDK
最近了解到谷歌推迟Flutter兼容开发iOS.Android移动应用的框架,该框架使用的语音是Dart.作为一个iOS开发者来说,不感兴趣就不正常了,于是开始从学习Dart开始,所有的开发语音其实都 ...
- Python学习---range/for/break/continue简单使用
range的使用:注意,在python3中,交互模式下已经不显示了 for循环的使用 打印50-70 # 第一种方案 for i in range(100): if i <= 70 and i ...
- Java学习---JAVA的类设计
基础知识 JAVA是由C/C++语言发展而来的纯面向对象语言,其基本元素包括:简单数据类型 和 复合数据类型(即类).类是对客观事物的抽象描述,它有面向对象的四个特点,即:封装性.继承性.多态性和通信 ...
- Java.lang 包 (包装类、String类、Math类、Class类、Object类)
Java 的核心 API(Application Programming Interface)是非常庞大的,这给开发者带来了很大的方便. java.lang 包是 Java 的核心类库,它包含了运行 ...
- 使用Visual Studio Code编写和激活ABAP代码 (上)
猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都 ...