如果creator不提供的加密图片方法,那么自己加密图片,在使用加密图片的时候,必须通过代码来动态解密,并动态加载到某个精灵上,这样的话,完全没有组件式开发的效率了,你们说呢?
另外想问问有没有其他方式的加密图片办法,以省去我自己开发加密、解密函数、工具所花费的时间。
原来整个论坛都没人需求资源加密功能,你们的图片资源我就拿走了,谢谢。
这种需求都是自己写的
官方都不提供这样的接口,甚至连加载内存图片的功能都没有,CCC基于js,js的读二进制简直鸡肋,如果直接修改引擎,并不是我们觉得的最优方案,官方应该提供这样的功能,只要使用不同的密钥,就可以加密和解密,这样就算是一样的加密算法,别人没有密钥也解不开。
加载内存图片是可以的,不过要在 C++ 层做(基于 Texture 的 initWithImage 接口),JS 读二进制可以使用 ArrayBuffer。
我们的 loader 是可以扩展的,你可以在 loader 的 load pipe 中定制自己需要的解密过程,比如
cc.loader.addDownloadHandlers({
// 假设 encrypt 是加密后文件的后缀名
// item 查阅 loading item 文档
// callback 需要返回 error 和 result
'encrypt': function (item, callback) {
callback(null, item.url);
}
})
cc.loader.addLoadHandlers({
// 假设 encrypt 是加密后文件的后缀名
'encrypt': function (item, callback) {
// 读取文件内容, item.content 是 download pipe 中返回的 result,也就是 url
// Decoder 是用户从 C++ 绑定到 js 的接口,应该由用户按照自己的加解密协议实现,在 C++ 层从文件读取 binary 内容,然后解密到内存中,创建 Image,进而创建 Texture2D,然后返回。
var texture = decoder.parseTextureFromBinaryFile(item.content);
// 返回当前 pipe 的结果
callback(null, texture);
}
})
Loader 文档: http://cocos.com/docs/creator/api/classes/loader.html
Pipeline 文档: http://cocos.com/docs/creator/api/classes/Pipeline.html
LoadingItems 文档: http://cocos.com/docs/creator/api/classes/LoadingItems.html
希望再给一下加载内存图片的教程,谢谢。
有那功夫还是多完善下游戏吧,就算你加密了,我也能直接从硬件内存里面读取图片来盗图。别费那功夫了
有多少人会花这时间来破解?
我的游戏素材值得你花时间破解不?
不要说一些没营养的话,知道不?
如果能出个demo就好了,我们有些人不会C++
运行个软件的事,你说要花多少时间?让你少走弯路还叫没营养?那当我没说,您继续加密吧。呵呵
求那个工具的名字 - -
什么样的奇葩需求都想要引擎实现啊,引擎组要累死了。
也不能说奇葩,毕竟是个正常需求,只是优先级可能会比较低,没有的话大家只有靠自己了
哪位大神分享一下详细过程啊。。。小白留
加密功能很正常,大公司基本都必须做加密,你可以下载几个大公司游戏看看,看你能取出他们的图片不!
求硬件内存读取图片方法
加密还是很常用的需求,引擎能直接提供的话当然美滋滋,不用担心升级的兼容性问题,也不用在开发过程中频繁地来回加密解密。
2018年许个愿
我也许个愿,希望能有个像脚本加密一样的东西把,资源也加密一下,虽说app并不出名,但是我希望能对我做的东西负责