一、简介
在第一篇《》中,我们介绍了微信小游戏开发入门所需的知识,以及小游戏的开发环境和工具。学习如何开发小游戏固然重要,但更重要的是,什么样的游戏更适合小游戏环境及其用户。
众所周知,小游戏运行在微信内部的游戏环境中,所以微信用户也是小游戏的潜在用户。这些用户在使用微信时会被什么样的游戏所吸引?哪些游戏会被分享?什么样的游戏可以融入用户的社交过程?这些在今天都没有最佳答案,开发者都在探索,这也是广大小游戏开发者的机会所在。但毫无疑问,要做这么一款爆款游戏,必须要完美理解各种微信社交/系统SDK接口的能力,并将其发挥到极致。
今天我们就来详细分析一下小游戏环境为大家开放的各种SDK接口,以及这些接口能够承载什么样的游戏体验。当然,在微信小游戏的官方文档中,对这些接口的使用都有非常详细的介绍。我们不会重复这些具体的 API 调用的细节,而是更关注这些接口提供的功能和潜力。最后,我们还会给出一个Cocos制作小游戏的案例。
注:小游戏官方文档地址:
2、小游戏提供的接口能力
微信SDK接口通用规则
微信的大部分SDK接口都有非常相似的使用方法和命名规则。以下是我们总结的一些经验:
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');
}
})
接下来我们看看具体的接口。首先我们来看一下大家最关心的三个接口:用户接口、转发接口、支付接口。
用户界面
在用户界面方面,开发者最应该关注的是用户的登录。登录界面的使用示例如下:
wx.login({
success: function (res) {
// res.code 为用户的登录凭证
if (res.code) {
// 游戏服务器处理用户登录
} else {
// 失败处理
console.log('获取用户登录态失败!' + res.errMsg);
}
},
fail: function (res) {
// 失败处理
console.log('用户登录失败!' + res.errMsg);
}
});
综上所述,要想获得良好的用户体验,所有异步接口的失败都应该得到处理,尤其是Login。如果登录失败微信小游戏开发所需要的各种SDK接口能力和命名规则,游戏就很难继续下去,除非是纯单机游戏。至于失败的处理,建议重试,或者引导用户关闭小游戏重试。
回调接口中的res.code是用户的登录凭证,通过它可以在开发者服务器后台进行和等信息的交互。某些 API 可能包含用户的敏感数据。这些敏感数据需要通过才能获取。否则,只能获得有限的数量。基本数据。详见用户登录状态签名文档。目前需要登录状态签名获取敏感数据的接口有:
用户登录状态签名文件:
另外,有些API调用需要用户授权后才能使用。如果没有申请过授权,第一次调用会自动申请。过程如下:
您也可以在调用 API 之前进行预授权:
详细的授权示例和需要授权的API列表请参考微信官方文档中的用户授权部分,地址:。
转发接口
在第一篇文章中,我们提到小游戏最大的突破性能力可能就是从转发入口直接点击进入游戏的超快体验。从技术角度来看,小游戏中的转发分为被动转发和主动转发(主动和被动是针对游戏开发者的):
使用 wx。转发选项显示在右上角“...”按钮的弹出菜单中,方便用户在游戏中随时发起转发。转发选项可以通过 wx.
wx.:
wx.:
wx.:
同时开发者可以听wx. 监控用户转发行为并准备合适的转发内容。具体的,开发者可以在回调函数的返回值中自定义转发内容:
1. title:标题,不传则默认使用当前小游戏的昵称;
2. :转发链接显示图片;
3. 查询:游戏参数,按照key1=val1&key2=val2格式的查询字符串,从这条转发的消息中进入后,可以通过wx获取这些启动参数。或 wx。
用户点击右上角菜单按钮发起转发
所谓主动转发,是指开发者在游戏交互过程中为用户发起转发请求。一般情况下,玩家在游戏中点击分享按钮后,开发者直接调用wx.
wx.:
用户点击按钮自动调用转发页面
开发者还可以为所有转发设置一个模式。在这种模式下,开发者转发即可获得一个,用户通过转发链接进入游戏。会传给wx.,在回调中解密数据,获取共享组id。数据解密请参考加解密算法文档,地址:.
支付系统
小游戏API文档中并没有支付相关的API,但是从安卓上线的小游戏来看,已经有支付体验了。至于未来什么时候对所有开发者开放,敬请期待官方微信消息。
网络接口
网络接口分为网络请求、上传和下载三部分。
wx.:
API文档:
wx.:
wx.:
文件系统
小游戏向开发者开放了非常完备的文件系统接口微信小程序开发,这与浏览器不支持文件IO的情况完全不同。一方面这给了开发者更多的自由和发挥的空间,但另一方面这也是目前微信小游戏环境必备的API,因为微信小游戏环境不支持资源缓存和资源类似于浏览器的过期机制。
具体来说,浏览器会缓存用户已经访问过的资源。再次访问时,会先从缓存中获取,而不是向服务器发送请求。这样可以尽可能减少网络使用,优化页面响应速度。当服务器上的资源更新时,浏览器会发现本地资源已经过期,自动清除对应的本地资源,并从服务器获取最新版本。
在小游戏环境下,如果想避免每次都从服务端获取资源,需要自己实现类似的资源缓存和过期方案。这样的方案就得依赖上面的下载接口和文件系统接口。好消息是 Cocos 提供了完整的资源管理解决方案,我们将在下一次分享中详细讨论。
要了解小游戏的文件系统,首先要了解小游戏的文件沙箱环境:
所有的文件系统接口都是在这个文件沙盒环境中执行的,所有的文件目录也是相对于沙盒环境的,所以我们不用担心不同小游戏或者不同用户之间的文件冲突。
从API使用的角度来看,所有的文件系统接口都是源码提供的,开发者需要先通过:
:
let fs = wx.getFileSystemManager();
获取对象,然后调用其API完成所需的功能。下面通过下载、读取、删除文件的过程展示API的使用:
以上只是一些最基本的接口用法。另外,微信小游戏还提供了,,,,等,大家可以参考API文档自行探索。细心的开发者还会注意到,这些接口大多包含同步版本,比如fs。建议使用异步版本的接口,否则文件IO造成的阻塞会影响游戏运行的流畅度和游戏体验。,显然写异步代码的麻烦还是可以忍受的。
其他界面
除了以上接口,还有很多接口对于特定的游戏类型来说非常重要,下面列举一些例子:
3、从界面能力的角度思考小游戏的机会
本文链接:http://www.jxjx371.com//a/lianhao/20221215/2706.html,转载请注明出处,谢谢!