1.写在前面:随着越来越多的新人开始接触白鹭引擎,创作属于自己的游戏。考虑到初学者会遇到一些实际操作问题,我们近期整理推出“菜鸟”系列技术文档,以便更好的让这些开发者们快速上手,Egret大神们可以自动忽略此类内容。
2.今天我们分享的菜鸟文档将介绍微信小游戏好友排行榜的制作过程,包括创建项目并发布、微信开发者平台添加小游戏、打开开放域功能、主域和开放域通讯,以及ShareCanvas与原生Canvas的布局。
3.微信好友排行榜利用微信关系链数据实现一个简单的排行榜,此文档包含关系链数据、Egret平台数据接口、ShareCanvas离屏画布、原生Canvas布局。
4.创建项目并发布
5.创建Egret项目,使用Launcher发布,建议使用您个人AppID(测试用的id限制很多功能,例如分享)
6.添加小游戏
7.设置基本设置添加小程序(能够通过审核即可)
8.打开开放域功能
9.使用微信开发者工具打开发布的微信小游戏,或在终端运行egretrun--targetwxgame,找到游戏配置文件game.json,配置如下,其中openDataContext使小游戏支持了微信开放域功能。
{"deviceOrientation":"portrait","networkTimeout":{"request":5000,"connectSocket":5000,"uploadFile":5000,"downloadFile":5000},"openDataContext":"openDataContext"}10.ShareCanvas介绍
11.开放数据域的绘制文件中已经拥有一个通过CanvasAPI绘制的排行榜,SharedCanvas是主域和开放数据域都可以访问的一个离屏画布,原理如下所示。
12.index.js文件中,官方已经为我们绘制了一个简单的排行榜demo,渲染出的效果如下图所示
13.主域和开放域通讯
14.开放域已经为我们绘制好了虚拟排行榜,现在只需要让主域打开开放域的排行榜就可以展示在Canvas上了。
15.首先,创建开放数据域显示对象,离屏画布的显示对象可直接在主域中通过以下的方式进行创建,创建的显示对象为egre.Bitmap类型,可直接添加到舞台上。
//在主域中创建开放数据域显示对象varplatformwindow.platform;this.bitmapplatform.openDataContext.createDisplayObject(null,this.stage.stageWidth,this.stage.stageHeight);16.其次,通过主域与开放数据域的单向数据接口进行通讯。主域可向开放数据域单方向发送消息。
//主域向子域发送数据plathform.openDataContext.postMessage({isRanking:this.isRankClick,text:"egret",year:(newDate()).getFullYear(),command:"open"});17.子域可通过监听事件的方式获取到主域发送过来的自定义信息。
1//子域接收信息2wx.onMessage((data){3if(data.command'open'){4//显示开放域5if(!hasCreateScene){6//创建并初始化7hasCreateScenecreateScene();8...9}10}18.最后,开发者便可以在主域中发送数据,请求开放域打开排行榜,子域接收到数据打开排行榜。
19.扩展
20.您可以通过修改index.js文件内的参数改变排行榜样式达到目标效果,可以使用自己的图片放到对应的路径中(总文件大小不要超过4M)。布局建议不要使用固定数字的数值,而是以stageWidthstageHeight舞台宽高作为基数,以尽量减少不同手机出现的适配问题。
1/**2*资源加载组,将所需资源地址以及引用名进行注册3*之后可通过assets引用名方式进行获取4*/5varassets{6icon:"openDataContext/assets/icon.png",7box:"openDataContext/assets/signIn.png",8panel:"openDataContext/assets/bg.png",9button:"openDataContext/assets/OK_button.png",10title:"openDataContext/assets/rankingtitle.png"11};21.注意:安卓偶尔有不显示数据的BUG,在index.js中给字体加一个颜色即可
1//设置字体2context.fontfontSize+"pxArial";3context.fillStyle"#fff"22.小结
23.通过本文您可以对以下问题有更深入的了解
24.对微信的关系链数据有更深入的理解平台数据接口的作用和使用熟悉主域与开放域数据通讯规则对原生Canvas的布局有所了解
25.本文关键代码参考
1privateisRankClick:booleanfalse;2privatebitmap:egret.Bitmap;3/**4*排行榜遮罩,为了避免点击开放数据域影响到主域,在主域中建立一个遮罩层级来屏蔽点击事件./br5*根据自己的需求来设置遮罩的alpha值0~1./br6*/7privaterankingListMask:egret.Shape;89//显示微信排行榜10publicobBtnRankingClick(e:egret.TouchEvent){11console.log("点击排行榜");12letplathform:anywindow.platform;13if(!this.isRankClick){14//处理遮罩,避免开放域数据影响主域15this.rankingListMasknewegret.Shape();16this.rankingListMask.graphics.beginFill(0x000000,1);17this.rankingListMask.graphics.drawRect(0,0,this.stage.width,this.stage.height);18this.rankingListMask.graphics.endFill();19this.rankingListMask.alpha0.4;20//设置为true,以免触摸到下面的按钮21this.rankingListMask.touchEnabledtrue;22this.addChildAt(this.rankingListMask,999);2324//让排行榜按钮显示在容器内25this.addChild(this.btn_ranking);2627//显示开放域数据28this.bitmapplathform.openDataContext.createDisplayObject(null,this.stage.stageWidth,this.stage.stageHeight);29this.addChild(this.bitmap);30//主域向子域发送数据31plathform.openDataContext.postMessage({32isRanking:this.isRankClick,33text:"egret",34year:(newDate()).getFullYear(),35command:"open"36});3738this.isRankClicktrue;39}40else{41this.bitmap.parentthis.bitmap.parent.removeChild(this.bitmap);42this.rankingListMask.parentthis.rankingListMask.parent.removeChild(this.rankingListMask);43this.isRankClickfalse;44plathform.openDataContext.postMessage({45isRanking:this.isRankClick,46text:"egret",47year:(newDate()).getFullYear(),48command:"close"49});50}51}26.本文源码链接:https://github.com/shenysun/F...
菜鸟|微信小游戏好友排行榜教程-两个人玩的微信小游戏-两个人玩的微信小程序
浏览量:2344
时间:
来源:weixin_33716941
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










