文档章节

如何利用开放数据域为微信小游戏添加社交关系链玩法

白鹭科技
 白鹭科技
发布于 2018/03/27 11:41
字数 1082
阅读 902
收藏 0

3月23日, 小程序游戏类目开放测试,开发者可开发、调试小游戏,同时,微信官方还对小游戏开放了微信社交关系链、虚拟支付能力。但是令一些开发者感到困惑的是「如何才能利用开放数据域为微信小游戏添加社交关系链玩法」。

  • 这张图片是来自于微信小游戏的跳一跳排行榜,小游戏不但开放了用户注册也把关系链数据开放了出来,有了这些数据普通的开发者也可以开发出类似的排行榜功能,有了关系链数据,会大大增加游戏玩法,玩家之间的互动,给游戏带来了更大的趣味性。
  • 小游戏主要提供了 wx.getFriendCloudStorage() 和 wx.getGroupCloudStorage() 两个 API 接口。但是为了保护关系链数据,小游戏增加了开放数据域的概念,开放数据域只能在离屏画布(sharedCanvas)上使用,这块画布和主域是可以共享的,我们需要把 sharedCanvas 绘制到主域上,这个过程需要开发者接触底层的 canvas 底层 API,对于不熟悉的同学会带来很大的不便,所以白鹭引擎对做了进一步的优化与封装。
  • 请开发者先阅读微信小游戏开放数据的文档这样对关系链会有更好的理解。

使用示例:
1、白鹭引擎使用开放数据域的原理简介。关系链数据必须在开放数据域中获取。引擎在主域中使用window["sharedCanvas"]接口获取到 sharedCanvas,然后直接使用 sharedCanvas 作为 egret.Bitmap 的 egret.BitmapData ,添加在主域的舞台上即可。这样在使用上带来了极大的方便性。
2、由于 开放数据域 是一个封闭、独立的 JavaScript 作用域 所以要建立两个 egret 项目,主域项目 (egretToWxDemo) 和开放数据域项目 (myOpenDataContext) ,为了减少小游戏的体积,在开放数据域项目中只保留 egret、game两个模块。关于图片的加载可以白鹭提供的 egret.ImageLoader 或者直接使用 微信小游戏原生提供的 Image 对象进行加载。
3、在 launcher 中将主域项目发布成小游戏项目,发布成功后得到一个 egretToWxDemo_wxgame 文件夹,然后需要在 game.json 中添加配置项 openDataContext 指定开放数据域的代码目录,这里我们填写 openDataContext,一会我们要将开放数据域的项目发布到这里。修改 Main.ts 文件,将离屏画布绘制到主域上;
   

//主要示例代码开始
  const bitmapdata = new egret.BitmapData(window["sharedCanvas"]);
  bitmapdata.$deleteSource = false;
  const texture = new egret.Texture();
  texture._setBitmapData(bitmapdata);
  this.bitmap = new egret.Bitmap(texture);
  this.bitmap.width = this.stage.stageWidth;
  this.bitmap.height = this.stage.stageHeight;
  this.addChild(this.bitmap);

  egret.startTick((timeStarmp: number) => {
      egret.WebGLUtils.deleteWebGLTexture(bitmapdata.webGLTexture);
      bitmapdata.webGLTexture = null;
      return false;
  }, this);
  //主要示例代码结束  

 

{
	"deviceOrientation": "portrait",
	"networkTimeout": {
		"request": 5000,
		"connectSocket": 5000,
		"uploadFile": 5000,
		"downloadFile": 5000
	},
	"openDataContext": "openDataContext"
}

4、再使用 wing 打开开放数据域项目,打开 egretProperties.json 配置模块中值保留 egret、game 、'promise'模块,删除 resource 目录下所有内容,这是为了减少游戏的体积。
 

 "modules": [
    {
      "name": "egret"
    },
    {
      "name": "game"
    },
    {
      "name": "promise"
    }
  ]

5、在开放数据域 script 目录里打开 config.wxgame.ts 文件。 输出路径 (outputDir) 改为 ../egretToWxDemo_wxgame/openDataContext,然后把 demo 中的 wxgame.ts 插件替换到 script 的 wxgame 目录内。
  
6、由于开放数据域可以使用主域的图片资源,我们直接利用主域内的图片,修改 Main.ts 文件,由于篇幅所限,具体见示例 demo。
7、在 launcher 中将开放数据域项目发布成小游戏,这时有可能发布的目录不正确,不要着急,回到开放数据域项目中执行 egret publish --target wxgame 命令,如果报错请在主域发布的小游戏项目中找到 openDataContext 目录,创建一个 index.js 文件,再次回到开放数据域项目中执行 egret publish --target wxgame 命令,正常情况发布成功后如图所示。
 
注意事项
    一定要帧率为 60 帧。避免屏幕闪烁。
    开发后数据域尽量少使用库。

如您在开发过程中遇到任何问题,请登录官方论坛进行讨论。
示例DEMO下载请访问
https://github.com/peony-ma/wxOpenDataContext

© 著作权归作者所有

白鹭科技
粉丝 11
博文 18
码字总数 29793
作品 0
私信 提问
重磅 | 微信「小游戏」来了 !首发深度解读小程序年度压轴大招

摘要 「小游戏」开放的是一种能力,更是微信的一种姿态。而对开发者来说,这是一份不折不扣的年终大礼。 在 2017 年还剩最后三天的时候,微信小程序上线了「小游戏」板块,千呼万唤后,微信小...

早优夫斯基
2017/12/28
0
0
微信小程序最新盈利模式 您的企业或店铺是否已经开启?

今年以来,新零售备受瞩目,但是绝大部分人仍然不清楚马云所指的“五新”具体是什么,但理解了小程序,似乎新零售三个字,理解起来就简单多了。 今年3月腾讯的两会媒体沟通会上,马化腾就曾谈...

速成应用小程序平台
2018/05/31
0
0
2018小游戏市场规模预计达300亿,棋牌游戏占比超两成

  上周,凤凰网游戏和白鹭科技联合发布了《2018年小游戏行业白皮书》,该书对中国小游戏产业规模和发展态势等做了深刻解读和分析,表示:2018年,中国迎来小游戏元年,小游戏市场规模预计将...

网狐棋牌开发
2018/06/28
0
0
小游戏专场:腾讯云Game-Tech技术沙龙上海站顺利落下帷幕

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 9月14日腾讯云GAME-TECH技术沙龙小游戏专场在上海顺利举办,此次技术沙龙由腾讯云的资深专家...

腾讯云加社区
2018/09/26
0
0
霸榜超过一周的Zepeto探秘:是社交,还是游戏?

硅谷Live / 实地探访 / 热点探秘 / 深度探讨 本文授权转载自创业邦(ID:ichuangyebang) 转载请联系原作者 最近,一款叫做Zepeto的App,在苹果商店中国区 Top 10 已经待了快两个月。而突飞猛...

硅谷密探
2018/12/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
10
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部