Cocos Creator 随笔(5)-- sproto的使用

一、准备
服务端给到的.sproto文件需要转换为 .spb文件。

二、加载方式,第二种方式在微信小游戏上无法解析,所以我用的第一种
①默认加载

//sprotojs的引入
// ./当前目录   ../上一级目录
let sproto = require("./../lib/sproto");
let path = "sproto/protocol";
        let self = this;
        cc.resources.load(path, cc.BufferAsset, (error, assets:cc.BufferAsset) => {

            printf.Log(`cc.resources.load`);
            
            //爆红不用管
            let file = assets._buffer;
            
            printf.Log(`load file = `, file);
            let mybuffer = (file instanceof ArrayBuffer)? file: file.buffer;
            let arrayBuffer = new DataView(mybuffer);
            //console.log("arrayBuffer.buffer = ", arrayBuffer.buffer);

            let data_8 = new Uint8Array(arrayBuffer.buffer, arrayBuffer.byteOffset, arrayBuffer.byteLength)
            self.m_sproto = sproto.createNew(data_8);

        });

②管线自定义加载


        cc.assetManager.downloader.register('.spb', (path, options, onComplete) => {

            cc.assetManager.downloader.downloadFile(path, {responseType: 'arraybuffer'}, onComplete);
        });
        cc.assetManager.parser.register('.spb', function (file, options, callback) {
            //console.error("eeee");
            printf.Log(`parser file = `, file);
            //loadAny里面的回调
            callback(null, file);
        });

        let path = "sproto/protocol";
        let self = this;
        //cc.assetManager.loadAny([`e3824b3a-e226-4bff-a78e-d6644a9f0837`], (error, assets) => { //uuid
        cc.assetManager.loadAny({path:path, bundle: 'resources'}, (error, assets) => {

            printf.Log(`cc.assetManager.loadAny`);
            
            let file = assets._nativeAsset //模拟器会报错 Cannot read property '_$nativeAsset' of undefined
            
            printf.Log(`loadAny file = `, file);
            let mybuffer = (file instanceof ArrayBuffer)? file: file.buffer;
            let arrayBuffer = new DataView(mybuffer);
            //console.log("arrayBuffer.buffer = ", arrayBuffer.buffer);

            let data_8 = new Uint8Array(arrayBuffer.buffer, arrayBuffer.byteOffset, arrayBuffer.byteLength)
            self.m_sproto = sproto.createNew(data_8);

        });

先写个加载,待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Cocos Creator是一款面向游戏开发者的跨平台游戏开发工具,它集成了Cocos2d-x游戏引擎和Cocos Studio编辑器,支持多种平台上的游戏开发,如iOS、Android、Windows等。 消灭星星是一款基于Cocos Creator开发的游戏。在游戏中,玩家需要消除屏幕上的星星,以获得分数。游戏开始时,屏幕上会随机生成一些星星,玩家可以通过点击相连的星星来消除它们。消除的星星越多,得到的分数就越高。玩家可以通过不断消除星星来刷新高分记录,挑战自己的极限。 在消灭星星游戏中,Cocos Creator提供了丰富的功能和工具,为游戏开发者提供了便利。开发者可以使用Cocos Creator的图形界面编辑器来创建游戏场景、导入资源和设置游戏规则等。同时,Cocos Creator还提供了强大的脚本编写功能,开发者可以使用JavaScript或TypeScript编写游戏逻辑,实现游戏中的各种功能。 除了基本的消除星星玩法,Cocos Creator还支持添加特殊道具、关卡设计、人物角色等功能。开发者可以根据自己的需求,自定义游戏的玩法和功能,使游戏更加有趣和有挑战性。 总而言之,Cocos Creator游戏开发工具提供了强大的功能和便捷的开发环境,使开发者可以轻松地开发出各种各样的游戏,包括消灭星星这样的小而精致的休闲游戏。无论是想要学习游戏开发还是实现自己的游戏创意,Cocos Creator都是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值