建议creator提供图片资源加密功能

如果creator不提供的加密图片方法,那么自己加密图片,在使用加密图片的时候,必须通过代码来动态解密,并动态加载到某个精灵上,这样的话,完全没有组件式开发的效率了,你们说呢?
另外想问问有没有其他方式的加密图片办法,以省去我自己开发加密、解密函数、工具所花费的时间。

3赞

原来整个论坛都没人需求资源加密功能,你们的图片资源我就拿走了,谢谢。

1赞

这种需求都是自己写的

官方都不提供这样的接口,甚至连加载内存图片的功能都没有,CCC基于js,js的读二进制简直鸡肋,如果直接修改引擎,并不是我们觉得的最优方案,官方应该提供这样的功能,只要使用不同的密钥,就可以加密和解密,这样就算是一样的加密算法,别人没有密钥也解不开。

2赞

加载内存图片是可以的,不过要在 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

13赞

希望再给一下加载内存图片的教程,谢谢。

有那功夫还是多完善下游戏吧,就算你加密了,我也能直接从硬件内存里面读取图片来盗图。别费那功夫了

1赞

有多少人会花这时间来破解?

我的游戏素材值得你花时间破解不?

不要说一些没营养的话,知道不?

如果能出个demo就好了,我们有些人不会C++

运行个软件的事,你说要花多少时间?让你少走弯路还叫没营养?那当我没说,您继续加密吧。呵呵

求那个工具的名字 - -

1赞

什么样的奇葩需求都想要引擎实现啊,引擎组要累死了。

也不能说奇葩,毕竟是个正常需求,只是优先级可能会比较低,没有的话大家只有靠自己了

哪位大神分享一下详细过程啊。。。小白留:joy:

加密功能很正常,大公司基本都必须做加密,你可以下载几个大公司游戏看看,看你能取出他们的图片不!

求硬件内存读取图片方法

加密还是很常用的需求,引擎能直接提供的话当然美滋滋,不用担心升级的兼容性问题,也不用在开发过程中频繁地来回加密解密。

1赞

2018年许个愿

许个愿,想要一个图片加密解密的demo !!!@panda

我也许个愿,希望能有个像脚本加密一样的东西把,资源也加密一下,虽说app并不出名,但是我希望能对我做的东西负责