# 小游戏开发指南
基础库2.11.6开始支持
# 小游戏目录结构
小游戏包含一个描述整体程序的 app 。
一个小游戏主体部分由三个文件组成,必须放在项目的根目录,如下:
文件 | 必需 | 作用 |
---|---|---|
game.js | 是 | 小游戏逻辑 |
game.json | 是 | 小游戏公共配置 |
# 基础能力
# 存储
每个小程序都可以有自己的本地缓存,可以通过 ft.setStorage、ft.getStorage、ft.clearStorage,ft.removeStorage 对本地缓存进行读写和清理。
# 渲染
# 画布
小游戏只有一个上屏画布,可以有多个离屏画布。通过 wx.createCavans 可以创建一个画布对象。
# 绘图上下文及接口。
通过 Canvas.getContext 可以创建绘图上下文。返回的具体绘图上下文类型可查看 RenderingContext。
# 模块化
# 模块化
小程序目前暂不支持「直接引入 node_modules」,需要通过 构建 npm 完成引入工作,需要时也可直接复制代码到小程序的目录中,再进行使用。
注意
exports 是 module.exports 的一个引用,因此在模块里边随意更改 exports 的指向会造成未知的错误。所以更推荐开发者采用 module.exports 来暴露模块接口,除非你已经清晰知道这两者的关系。
// common.js
function sayHello(name) {
console.log(`Hello 小游戏框架 !`)
}
function sayGoodbye(name) {
console.log(`Goodbye 小游戏框架 !`)
}
module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye
# 文件作用域
在 JavaScript 文件中声明的变量和函数只在该文件中有效;不同的文件中可以声明相同名字的变量和函数,不会互相影响。
# 全局对象
类似于浏览器的 Window 和 NodeJS 的 global,小游戏也有一个全局对象 GameGlobal。通过 GameGlobal 可以在多个文件中传递变量。
提示
在小游戏中没有 window 这种全局对象,如果有需要请将数据挂载到 GameGlobal。通过
// a.js
GameGlobal.globalData = 1
// b.js
console.log(GameGlobal.globalData) // 输出 "1"