quick-cocos2d-x

quick-cocos2d-x基于源码加密打包功能的更新策略(2)

ⅰ亾dé卋堺 提交于 2019-11-30 23:31:35
前一篇: quick-cocos2d-x基于源码加密打包功能的更新策略(1) 二、更新原理讨论及更复杂的更新功能 1.更新原理 在前面的更新过程中,从服务器取文件列表,并根据文件列表再更新相关的文件,这都是很好理解的。当然其中还有些流程细节关系到健壮性、续传、文件版本分发等,我们可以后面再讨论。 对于一些刚开始学习Quick-x的朋友来说,可能希望了解的是,这一更新机制的替换原理是什么,为什么新的文件下载后能够替代原来的代码生效呢? 从前面我们参考的源文件编译及加密的相关文章,可以清楚的看到,初始代码打包成的game.zip文件,是在AppDelegate.ccp中,在程序启动前通过loadChunksFromZIP载入的。这一载入工作实际上已经将所有代码都加载了,之后调用require时,将会直接 调用而不会再去找代码文件来载入。也正因为如此,一些朋友会感到迷惑,即使下载了新的代码文件,又如何让它生效呢? 其实很简单,loadChunksFromZIP是可以多次调用的,而且如果第二次载入的包中的代码模块与之前载入的模块有重名,新的模块会覆盖旧的模块。 在Quick-x的Lua代码中,对应的调用接口是CCLuaLoadChunksFromZIP。有了这个接口,我们下载新的代码包后,就可以自己加载了。在update.lua里,在下载完成后,会自动将act标记为load的文件加载一次

quick-cocos2d-x图片资源加密

那年仲夏 提交于 2019-11-30 23:31:21
###quick-x已经支持用XXTEA加密方式对脚本文件进行加密。在此基础上,自己做了一些工作,对图片资源进行了XXTEA加密,现分享给大家。 ###(2014.5.30加注:quick-x的2.2.3版本已经集成了我递交的pr,现在官方版本代码与文章中类似) ###首先我们要有对图片加密的工具。这个参考compile_scripts脚本,写一个用于加密的脚本就可以了。我自己写的脚本放在 这里 ,大家可以下载使用。(之前没用过php,完全是照着廖大的脚本修改成的,有写得不好的地方还请多多包涵,呵呵) ###脚本使用的方法和compile_scripts脚本差不多,将zip包里的文件解压到quick-x的bin目录下就可以用了。 ###在Windows命令行下,输入以下指令(请确认环境变量PATH里有quick-x的bin目录,否则需要自己加运行路径) pack_files.bat -i olddir -o newdir -ek XXTEA -es tsts ###以上指令是将olddir目录下的所有文件用XXTEA加密后,放到newdir目录下,其中加密密匙为XXTEA,加密记号为tsts。参数的定义与compile_scripts脚本类似,用-h也可以得到帮助,也不多说了。 ###MAC下可以用pack_files.sh来加密。 ###需要注意的是,现在 只支持图片的加密

quick-cocos2d-x图片资源加密(续)

两盒软妹~` 提交于 2019-11-29 18:45:32
前篇: quick-cocos2d-x图片资源加密 让quick-cocos2d-x支持加密的plist文件 通过前篇的修改,我们已经能够在Windows平台的player,以及Android上使用加密的常见格式(png、jpg等)的图片资源了。不过,在MAC上的player,以及IOS上,加载资源时调用的是另外的代码,所以我们需要另外作修改。 首先来修改Mac上的Player代码。我们这次要修改的是lib\cocos2d-x\cocos2dx\platform\mac目录下的CCImage.mm文件。在_initWithFile这个函数的开头,可以看到以下代码: NSString *fullPath = [NSString stringWithUTF8String:path]; jpg = [[NSImage alloc] initWithContentsOfFile: fullPath]; 我们用以下代码来代替: unsigned long fileSize = 0; unsigned char* pFileData = cocos2d::CZHelperFunc::getFileData(path, "rb", &fileSize); NSData *adata = [[NSData alloc] initWithBytes:pFileData length:fileSize