微信小游戏开发之Cocos Creator使用微信云开发和微信开放能力

主题

Cocos Creator集成微信云开发和调用微信开放能力

特别说明

CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有些知识点的补充和分析。

正文

上篇讲了如何使用微信云开发作为后台服务,但是它的场景是用于直接在微信开发者工具中创建的项目,而我们的目的是在Cocos Creator项目使用微信云开发,及使用微信生态的开放能力,那么我们该怎么做呢?

Cocos Creator文档中只提到了怎么发布“微信小游戏”,以及如何使用自带的第三方服务,而Cocos Creator自带的TCB云开发服务,因为局限性太大(具体的原因可以看我之前的文章),被我放弃了。

我们先来看看,发布微信小游戏的过程:

1. Cocos Creator项目构建发布微信小游戏

选择“菜单栏->项目—>构建发布”,如下图:

发布配置

各发布配置项的具体含义,可以看这里,我只说一下常用的几项内容:

  • 发布平台:项目要运行的平台,下拉列表中有几大类可以选择“小游戏”、“web”、“Android”、“iOS”、Mac等;

  • 发布路径:项目编译好后的文件存放位置,默认是在根目录的build目录下;

  • 初始场景:即项目运行时,第一个加载的场景

  • appid:如果发布为微信小游戏,这里就是在微信公众平台创建的小程序的appid;

  • 允许分离引擎: 勾选它的目的是为提升小游戏启动速度。引擎分离的好处是,在你手机上已经有其他小游戏已经使用了CocosCreator引擎插件时,我们的小游戏启动时就不会全量的去下载引擎插件了,微信只需要增量更新引擎两个版本的差异部分就可以了。需要特别注意:

    • 微信开发者工具中的 详情 -> 本地设置 -> 调试基础库 需要设置为 2.9.0 或以上版本。
    • 微信开发者工具中的 详情 -> 本地设置 -> 使用本地的插件 选项,用于设置是否禁用引擎插件,通常 无需勾选。(该选项只在微信开发者工具中有效)

发布配置好之后,先“构建”,完成后再点“运行”。如果第一次运行,还需要到编辑器 “菜单栏”—> “偏好设置” ->原生开发环境中设置微信开发者工具路径。或者,直接打开微信开发者工具,选择导入项目,选择项目根目录下的build目录,打开后可以运行起来。

2. 减小的引擎包的大小

选择“菜单栏 -> 项目 -> 项目设置 -> 模块设置”,项目场景中没有使用的组件模块,在项目打包时,可以不编译进引擎包中,因为引擎包的大小也是算在首包包体中,如下图:

模块设置

3. 如何集成微信开发工具的云开发

上面讲了项目发布构建后的目录默认是在项目根目录下的build,在微信工具中运行的也是build目录,按照上一节讲的云开发使用,是基于微信工具的,那么云开发的代码应该在build目录下了,但是build目录的代码和配置会随着每次构建而变化,而云开发的代码和配置也会被覆盖掉,然后要每次都重新配置。如果是这样,肯定不行啊,下面说一种我觉得比较方便的解决方法:

上一章提了微信工具创建的小游戏项目project.config.json文件,增加cloudfunctionRoot字段,用于指定本地已存在的目录作为云开发的本地根目录,那么project.config.json文件肯定也有用于指定本地已存在的目录作为小游戏的本地根目录的字段了。

project.config.json文件中搜索miniprogramRoot,指定当前项目中的一个目录:

{
  "miniprogramRoot": "wechatgame/"
}

而我们只需要把CocosCreator项目构建的发布路径build修改成微信工具创建项目的根目录,这样CocosCreator项目的代码编译好后,在微信工具项目中云开发的相关配置不会被覆盖掉,而且项目还把cocos项目编译后的代码,作为小游戏代码直接运行了。

当然还有其他的集成方式,比如cocos项目中创建buildTemplate模版目录,也可以集成微信云开发。

4. 调用微信开放能力

要在Cocos项目中使用微信生态能力,比如:分享、云函数调用、用户信息等,代码要怎么实现呢?

第一时间跑去查阅官方文档,可是文档中根本没有类似的说明,没办法只能去Cocos社区搜一下了,找了一圈下来,只找到一些代码片段,用法跟在微信开发工具中使用的方法没有不同啊,都是使用wx.开头,照着写到js脚本中,然后模拟器运行,报错Uncaught ReferenceError: wx is not defined

其实是我思维被限制住了,要使用微信小程序的api能力,当然需要到微信开发工具下,才能正常使用,所以需要区分运行环境,如下代码:

if (cc.sys.platform === cc.sys.WECHAT_GAME) {
    //微信小游戏环境下才执行
    wx.cloud.callFunction({
        name: 'query',
        data: {},
        success: res => {},
        fail: err => {}
    })
}

比较不友好的是,在VS Code编辑js脚本时,使用微信的api没有智能提示功能。

总结

  1. Cocos Creator项目集成微信云开发,通过将Cocos项目代码构建好后,放到微信工具中带有云开发能力的项目目录下。

  2. Cocos项目调用微信开放能力,和在微信工具创建的项目中用法一致,只是多了一步判断运行环境。

结尾

既然您看到这了,说明文章对你还有吸引力,帮忙点个赞再走吧,谢谢!

关注我的公众号「掉队程序员」,持续输出更多内容!

自己动手写,分解项目中的各个模块需求,通过查文档和搜索Cocos社区,解决碰到的问题,最终在微信上线了下面这款微信小游戏《成语锦衣卫》,欢迎大家扫码体验,并作为参考项目模版,开发出属于自己的小游戏


欢迎大家扫码体验

预告

下一节和朋友们说一说:Cocos Creator不同分辨率的背景图和场景内容适配

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容