【微信小游戏】排行榜实战版

一、前提

微信小游戏主打社交玩法,为了丰富社交玩法我们肯定会用到关系链数据来做好友排行帮,群排行榜等功能。本篇主要介绍Cocos Creator中排行榜的实现,上一篇微信小游戏排行版概念篇。

二、准备

工具:cocos creator

版本:v1.9.1

语言:JavaScript

介绍:

1)cocos creator v1.9.1 版本,构建发布中增加了子域的概念,这里的子域对应的就是小游戏中的开放数据域。如图1

2)子域代码目录:指的就是小游戏game.jsonsubContext的路径,一般在主域的根路径下,如图3,这时此框填写子域游戏名opendata即可

3)小游戏子域工程:如果选中了此复选框,则说明此工程作为子域工程,如图2。

图1(上图)

图2(上图)

图3(上图)

 注意点:如果担心有两个引擎文件,代码文件会大很多,此时可以考虑,去掉不用的模块。

三、实战

1、新建wx-main-test项目,display是个sprite用于显示排行,New Button是查看排行榜按钮, 如下图:

2、给场景绑定脚本lanuch.js, 给按钮绑定事件,不做过多解释,lanuch.js代码如下

cc.Class({
    extends: cc.Component,

    properties: {
        display: cc.Sprite
    },

    start () {
        this._isShow = false;
        this.tex = new cc.Texture2D();
    },

    onClick () {
        this._isShow = !this._isShow;
        // 发消息给子域
        wx.postMessage({
            message: this._isShow ? ‘Show‘ : ‘Hide‘
        })
    },

    _updaetSubDomainCanvas () {
        if (!this.tex) {
            return;
        }
        this.tex.initWithElement(sharedCanvas);
        this.tex.handleLoadedTexture();
        this.display.spriteFrame = new cc.SpriteFrame(this.tex);
    },

    update () {
        this._updaetSubDomainCanvas();
    }

});

解释:

onClick():查看排行榜,按钮点击事件,主要是通过wx.posMessage发送消息到子域,子域监听消息来获取数据

updata():通过一个定时器来获取sharedCanvas内容,就是上篇介绍的离屏画布

3、新建wx-sub-test,如图

4、lanuch.js代码如下:

cc.Class({
    extends: cc.Component,

    properties: {
        display: cc.Node
    },

    start () {
        wx.onMessage(data => {
            switch (data.message) {
                case ‘Show‘:
                    this._show();
                    break;
                case ‘Hide‘:
                    this._hide();
                    break;
            }
        });
    },

    _show () {
        let moveTo = cc.moveTo(0.5, 0, 73);
        this.display.runAction(moveTo);
    },

    _hide () {
        let moveTo = cc.moveTo(0.5, 0, 1000);
        this.display.runAction(moveTo);
    }
});

解释:

1、关键代码,start中的 wx.onMessage监听主域消息

2、这是一个实例工程,咱们自己可以通过调用wx.getFriendCloudStorage获取好友数据,进行渲染,实现排行榜。

四、总结

1、先发布主域工程,再发布子域工程,每次主域有修改都要重新发布子域;如果只修改子域,可只发布子域。

2、如果发现子域渲染到主域上很小,多半是主域sprite大小适配设置的问题。

3、穿透问题,如果发现子域有穿透问题,则需要再主域加 Block Input Events

4、主域加了防穿透后,发现子域隐藏后,屏幕不可点击了。是由于主域的sprite并没有真正的隐藏。正确的做法是排行榜的关闭按钮做在主域上,点击隐藏主域内容,同时发送消息到子域,隐藏子域内容。

5、时刻明确一点,子域是不可能修改主域内容的。

6、如有更多问题,欢迎留言,加QQ群交流。QQ群:418177552

原文地址:https://www.cnblogs.com/zhangdw/p/9059324.html

时间: 2024-12-30 00:42:50

【微信小游戏】排行榜实战版的相关文章

基于Laya游戏引擎实现微信小游戏排行榜

我们都知道,微信小游戏和小程序目前风头十足,很多公司都逐渐增加了相关业务线来迅速推广自己的产品和抢占用户群.说到微信小游戏,就不得不提到排行榜这个功能,就目前游戏行业,似乎都离不开排行榜这个重要功能,用户很大一部分留存都是依仗这个看似不起眼的模块.那么,微信小游戏中具体该如何借助laya引擎实现排行榜这个功能呢?我们先来看一下最终的效果图: 按照微信官方的说法,如果我们要使用微信官方提供的好友关系链的数据,我们就不能直接在项目中绘制排行榜,我们需要借助于开放域来绘制排行榜: ? 如果想要展示通过

微信小游戏5.2.2 排行榜打开后,如何关闭排行榜

因为微信小游戏只能主域通知子域,子域无法通知主域. 所以如果排行榜的关闭按钮做在子域里,是无法通知主域关闭了排行榜的. 所以排行榜的关闭按钮要做在主域里. 参考cocos:微信小游戏排行榜点击子域界面会触发主域元素的点击事件的问题 实际demo效果(不要吐槽界面太丑,数据太乱,就是测试用的): 原文地址:https://www.cnblogs.com/gamedaybyday/p/9206875.html

Egret5.2.2 微信小游戏行的示例排行榜

Egret5.2.2版本发布微信小游戏后,在开放数据域有一个默认排行榜.这个文件夹代码+图大小就22kb. 排行榜的效果就是示范用的,很丑...带翻页. 代码如下,基本就是使用canvas渲染了一个排行榜. 好处是不需要额外新建另一个Egret项目来实现排行榜,减小了代码体积. 坏处是canvas手动绘制排行榜,没有egret的eui可视化编辑,非常的不方便. 代码很长,慢慢看.... /** * 微信开放数据域 * 使用 Canvas2DAPI 在 SharedCanvas 渲染一个排行榜,

【微信小游戏实战】零基础制作《欢乐停车场》一、游戏设计

1.游戏立项 微信小游戏中有一款<欢乐停车场>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各颜色的小车停到对应的颜色车位,则完成本关挑战.接下来的日子,我将同大家一步一步的来实现这款小游戏,从零基础入门微信小游戏的开发和发布. 2.本篇内容 CocosCreator零基础制作<欢乐停车场Plus>微信小游戏  一.游戏设计 3.文章检索 1).[微信小游戏实战]零基础制作<欢乐停车场>

微信小游戏入门与实战 引爆朋友圈

第1章 准备工作(需要ES5,ES6基础)学员作品演示:https://pan.baidu.com/s/1gEMWzujg72soj0cEUOtJ2A 密码:uy2n,本章首先介绍课程目标,学习收获等,然后通过与APP.小程序的对比,让大家知道什么是微信小游戏以及微信小游戏前景如何,有哪些特点,然后带大家搭建微信小游戏的开发环境和调试环境,之后会对微信小游戏开发前注意事项与准备工作进行讲解,目...1-1 课程导学1-2 小游戏官方开发工具快速体验1-3 小游戏开发测试环境搭建和工具链使用1-4

微信小游戏入门与实战 刷爆朋友圈

第1章 课程介绍与准备工作本章首先介绍课程目标,学习收获等,然后通过与APP.小程序的对比,让大家知道什么是微信小游戏以及微信小游戏前景如何,有哪些特点,然后带大家搭建微信小游戏的开发环境和调试环境,之后会对微信小游戏开发前注意事项与准备工作进行讲解,目的是为了让大家在开发微信小游戏的时候可以跳过不必要遇到的坑,为后面的小游戏... 第2章 微信小游戏开发原理与JS面向对象初步填坑本章会带大家快速创建第一个微信小游戏项目,并跑起来,让大家快速的体验和熟悉小游戏开发和运行的整体流程,之后会对微信小

借助实时数据推送快速制作在线对战五子棋小游戏丨实战

1 项目概述 游戏开发,尤其是微信小游戏开发,是最近几年比较热门的话题. 本次「云开发」公开课,将通过实战「在线对战五子棋」,一步步带领大家,在不借助后端的情况下,利用「小程序 ? 云开发」,独立完成一款微信小游戏的开发与上线. 2 任务目标 根据项目初始框架,阅读教程的同时,逐步完成棋盘绘制.音乐播放.玩家对战.输赢判定等功能,最终实现一个可以快乐玩耍的在线对战五子棋. 在这个过程中,会了解到 Serverless 的一些概念,并且实际应用它们,比如:云数据库.云存储.云函数.增值能力.除了这

【转】Fundebug上线微信小游戏错误监控!支持自动截屏!

摘要: Fundebug竭诚为你的小游戏保驾护航. 想必大家都玩过"跳一跳"吧?刷排行榜的感觉是不是很好啊!还有"知乎答题王"呢,在智力上碾压老铁简直太棒了! 自带社交属性的小游戏很火,是微信帝国的另一座金矿! 为什么监控小游戏? 理论上来讲,BUG是无法避免的,实时监控阔以帮助开发者第一时间发现BUG,及时修复BUG,将BUG的影响降到最低. 开发者通常是比较自信的,他们坚持我写的代码当然没问题.然而,再拷问一下自己: 我的代码真的100%没有问题吗? 我做了完整

微信小游戏发布注意事项

微信小游戏上传基本流程: 1.首次提审资质文档 1.提审版本->2.提审页面上传资质->3.提交审核->4.审核受理 小程序注册完成后,登录微信公众平台(mp.weixin.qq.com),进入公众平台点击左侧的“开发管理”->再找到所需提交的版本->“提交审核” 勾选“已阅读并了解平台审核规则” ->点击下一步 ->进入提交审核信息填写界面(可提交相关的游戏资质文档.填写小游戏类目.游戏引擎.提供游戏测试号等)->上传资质文档 ->提交审核 说明:游