上一篇文章介绍了主域和子域的概念,微信小游戏:主域子域,这一篇介绍一下怎样在微信小游戏中制作好友排行榜

创建工程

由于开放数据域是一个封闭、独立的 JavaScript 作用域,所以开发者需要创建两个项目:

  • 主域项目工程(正常的游戏项目)
  • 子域项目工程(通过微信 API 获取用户数据来做排行榜等功能)

在我的示例中client是主域工程,children是子域工程,工程目录可以不相关

发布设置有几点注意事项

  • 首先,左侧主域中开放数据域代码目录要和右侧子域的游戏名称相同
  • 其次,右侧子域的发布路径要在主域发布路径之下,在我的工程中,主域的发布路径是
    G:\B2\trunk\code\client\build,那么子域的发布路径就要是G:\B2\trunk\code\client\build\wechatgame
  • 最后要先构建主域,再构建子域,因为构建子域的时候主域目录可能不存在,如果确认主域已经构建过,且只修改了子域的内容,也可以只构建子域工程。如果构建了主域要重新构建子域,因为构建的时候,Cocos Creator会把之前的构建目录删除掉。

核心代码

主域

这段代码可以写在你的游戏结算函数中,告诉子域游戏要结算了

if(cc.sys.platform == cc.sys.WECHAT_GAME){wx.postMessage({score : this.score, type : "open"});}

子域

var self = null;
cc.Class({extends: cc.Component,properties: {scroll_view_content : cc.Node,score_num_txt : cc.Label,max_score_notice : cc.Node,scroll_item_prefab : cc.Prefab,root_node : cc.Node,},start () {this.max_score = 0;if(cc.sys.platform == cc.sys.WECHAT_GAME){wx.onMessage(this.on_message_come);wx.getUserCloudStorage({keyList : ["max_score"],success : this.get_user_data_success,fail : this.get_user_data_fail,});wx.getFriendCloudStorage({keyList : ["max_score"],success : this.get_friend_data_success,fail : this.get_friend_data_fail,});}this.root_node.active = false;this.cached_scroll_item = [];this.cached_data = {};self = this;},on_message_come : function(data){if(data["type"] == "open"){var score = data["score"];self.refresh(score);if(score > self.max_score){wx.setUserCloudStorage({KVDataList : [{key : "max_score", value : score.toString()}],success : self.set_data_success,fail : self.set_data_fail,});wx.getFriendCloudStorage({keyList : ["max_score"],success : self.get_friend_data_success,fail : self.get_friend_data_fail,});self.max_score = score;}}},refresh : function(score){this.score_num_txt.string = score;if(score > this.max_score){this.max_score_notice.active = true;}else{this.max_score_notice.active = false;}var items_d = [];for(var k in this.cached_data){items_d.push(this.cached_data[k]);}items_d.sort(function(a, b){return b["max_score"] - a["max_score"];});for(var i = 0; i < items_d.length; i++){if(i < this.cached_scroll_item.length){this.cached_scroll_item[i].refresh(i, items_d[i]);}else{var new_node = cc.instantiate(this.scroll_item_prefab);new_node.parent = this.scroll_view_content;var controller = new_node.getComponent("RankItemController");controller.refresh(i, items_d[i]);this.cached_scroll_item.push(controller);}}},set_data_success : function(result){console.log(result);},set_data_fail : function(result){console.log(result);},get_user_data_success : function(result){console.log(result);var data = result["KVDataList"];for(var item in data){if(data[item]["key"] == "max_score"){self.max_score = parseInt(data[item]["value"]);break;}}},get_user_data_fail : function(result){console.log(result);},get_friend_data_success : function(result){var data = result["data"];for(var k in data){var final_d = {};var item_d = data[k];var kv_list = item_d["KVDataList"]final_d["url"] = item_d["avatarUrl"];final_d["nickname"] = item_d["nickname"];for(var kv in kv_list){if(kv_list[kv]["key"] == "max_score"){final_d["max_score"] = parseInt(kv_list[kv]["value"]);break;}}self.cached_data[item_d["openid"]] = final_d;}console.log(result);console.log(self.cached_data);},get_friend_data_fail : function(result){console.log(result);}
});
  1. 获取好友数据成功后的数据格式可以参考微信小游戏:主域子域中的介绍
  2. 各个子域函数的用法也可以参考微信小游戏:主域子域中的介绍

下一篇文章将介绍一些微信小游戏中遇到的一些问题及解决方式

1.开发工具:https://www.cocos.com/

推广一下自己做的简单的小游戏


创建了一个小游戏交流群,如果过期或者满了或者有问题交流 可以加我微信 备注“微信小游戏”

微信小游戏排行榜:Cocos Creator相关推荐

  1. 微信小游戏实战--cocos creator实现wordle游戏(六)

    就wordle游戏本身而言它已经完成了,但我并不打算就到此为止."麻雀虽小五脏俱全",从"完整"的角度来看,它还缺少一些"必不可少"的功能: ...

  2. 微信小游戏实战--cocos creator实现wordle游戏(一)

    前言 前段时间赋闲在家,整理电脑上的资料时才发现从业这么多年都是在给公司打工,没为自己写过点什么,所以决定为自己写一个完整的"产品".同时,为了检验一下自己的学习能力,选择了从未接 ...

  3. 微信小游戏实战--cocos creator实现wordle游戏(五)

    到目前为止我们已经实现了整个游戏的界面以及"空格"和键盘按钮的动画,接下来完成游戏的基础玩法流程. 完整代码 一.初始化游戏 由于在游戏中"空格"的背景和Lab ...

  4. 微信小游戏:Cocos Creator《守卫竹林》线上游戏源码资源分享

    <守卫竹林>源码资源分享 <守卫竹林>的云开发方式与文章微信小游戏:云开发(三)云开发和CocosCreator解决方案介绍的相同,可以作为参考 <守卫竹林>下载链 ...

  5. CocosCreator | 微信小游戏排行榜 微信开放域

    更多笔记和源码请关注:[微信公众号] CocosCreator笔记 演示 技术摘要 主域工程 微信授权 创建子域节点 向子域发送消息 子域工程 读写用户云托管数据 接收主域发送的消息 构建运行 实现 ...

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

    我们都知道,微信小游戏和小程序目前风头十足,很多公司都逐渐增加了相关业务线来迅速推广自己的产品和抢占用户群.说到微信小游戏,就不得不提到排行榜这个功能,就目前游戏行业,似乎都离不开排行榜这个重要功能, ...

  7. CocosCreator微信小游戏排行榜开发

    CocosCreator微信小游戏排行榜开发 开发前言 步骤1 开发前言 第一次接触微信小游戏开发的小伙伴,可以看看排行榜的开发和注意事项: 一.开发微信排行榜的话,用户的信息需要从微信提供的API获 ...

  8. CocosCreator微信小游戏排行榜及开放数据域的理解与使用

    微信小游戏开放数据域及排行榜的使用 好久没有写博客了,距离上一次博客,已经有了近半年之久,这段时间发生了太多的事,当然,这些不是今天的主题,接下来我们主要讲一讲微信小游戏开放数据域的使用,以及如果制作 ...

  9. 使用记录11_微信小游戏排行榜

    转载自 https://blog.csdn.net/haibo19981/article/details/80435962 1.安装cocos creator1.9.1 详细情况请看官方"接 ...

最新文章

  1. [bzoj3670][2014湖北省队互测week2]似乎在梦中见过的样子
  2. 索尼诺基亚持股公司告赢苹果,获300万美元赔偿
  3. word 2010 从第三页开始设置页码
  4. VMware虚拟机上安装Linux系统
  5. 徐海学院计算机专业好吗,2019中国矿业大学徐海学院专业排名
  6. linux脚本awk,如何在awk脚本中使用shell变量?
  7. python dataframe遍历_在pandas中遍历DataFrame行的实现方法
  8. nb模块不能接收公网消息_物联网连接技术之NB-IOT无线技术介绍
  9. 卡尔曼滤波算法_GPS定位笔记3 (卡尔曼滤波定位算法)
  10. Spark的调度系统
  11. [坐标纠偏] WGS84转GCJ02、BD09,GCJ02转BD09总结
  12. 将一个数组划分成总和相等的两部分
  13. Easy Mock全解及使用
  14. 用大白话聊聊JavaSE -- 如何理解Java Bean
  15. 行测判断推理部分之图形推理(位置)
  16. 拒绝精神内耗,5个适合中年人的自学网站,让你脱胎换骨
  17. 高分影像批处理第一回——数据格式分析与整理
  18. kirin710f是什么处理器_我告诉你kirin710f是什么处理器
  19. @TOM VIP邮箱,打造商务办公新场景,定位职场人的贴心助手!
  20. go中宕机与恢复 panic/recover 介绍

热门文章

  1. MySql 不存在则插入,存在则更新或忽略
  2. 相移法(PMP)中影响重建精度的几个因素
  3. 10/15/2022
  4. 安装Ubuntu 20.04后删除不必要用的自带软件
  5. 室内污染,美博士帮你搞定“甲醛君”
  6. react 使用express实现简单的分页接口,以及服务端返回public文件夹里的图片方法
  7. HybridNets: End-to-End Perception Network
  8. 股市赚钱,靠什么?(7)
  9. 剃掉多余的_剔掉多余的阅读理解与答案
  10. 数据库SQL性能优化之详解