我想做一个微信小程序小游戏,应该怎么做?

复杂么?我是这方面小白
关注者
39
被浏览
194,196

17 个回答


作者 | 凌华彬、王哲

责编 | 徐威龙

一、前言

在第一篇文章《 微信小游戏开发上手 》中,我们给大家介绍了上手微信小游戏开发所需要的知识,以及小游戏的开发环境和工具。学会如何开发小游戏固然重要,但是更重要的是,什么样的游戏更适合小游戏环境和它的用户。

我们都知道小游戏是运行在微信内部的游戏环境中的,那么微信用户也就是小游戏的潜在用户,这些用户在使用微信时,会被什么样的游戏所吸引?会分享什么样的游戏?什么样的游戏能融入用户的社交过程?这些在今天都没有最佳的答案,开发者们都在探索,也正是广大小游戏开发者的机会所在。但毫无疑问的是,制作这样的爆款游戏一定需要完美理解各种微信社交/系统 SDK 接口的能力,并将其发挥到极致。

今天我们会更详细分析小游戏环境给大家开放的各种 SDK 接口,以及这些接口可以承载什么样的游戏体验。当然,微信小游戏官方文档中,对这些接口都有很详细的使用介绍,我们不会重复这些具体的 API 调用细节,会更多侧重在这些接口所提供的功能和潜力上。最后,我们还会给出一个 Cocos Creator 制作小游戏的案例。

注:小游戏官方文档地址: mp.weixin.qq.com/debug/

二、小游戏提供的接口能力

微信 SDK 接口通用规则

微信的 SDK 接口大多有非常接近的使用方式和命名规则,下面是我们总结出来的一些经验:

  • onXXX & offXXX:这类 API 一般都是的事件注册和反注册;
  • xxxSync:在某个函数名后添加 Sync 就是该函数的同步方法,同时也说明原始函数一定是异步调用;
  • 异步函数:由于微信很多 API 都需要做后台请求,或从微信运行内核中获取信息,所以存在大量的异步接口,有时会提供它们的同步版本,但在大多数情况下我们仍然建议使用异步接口,以便更方便得捕获异常,组织异常处理代码;
  • 异步函数的调用方式:微信 API 内的异步函数绝大多数都接受一个对象作为参数,该对象内应该包含:
    success:成功回调
    fail:失败回调
    complete:完成回调(调用成功、失败都会执行)
wx.getSystemInfo({
  success: function (res) {
    // res 一般是一个包含调用结果的对象
    console.log('This phone is ' + res.brand + ' ' + res.model);
  fail: function (res) {
    // 通过 res.errMsg 可以获取错误信息
    console.warn(res.errMsg);
  complete: function () {
    console.log('API call completed');
})
  • getXXX & setXXX:获取和设置接口,比较反常理的是,很多这样的接口也是异步的,需要仔细阅读 API 文档。

接下来我们来看具体的接口,先看大家最关注的三大接口:用户、转发和支付接口。

用户接口

用户接口方面,开发者最应该关注的就是用户的登录了,登录接口的使用示例如下:

wx.login({
  success: function (res) {
    // res.code 为用户的登录凭证
    if (res.code) {
      // 游戏服务器处理用户登录
    } else {
      // 失败处理
      console.log('获取用户登录态失败!' + res.errMsg);