第一篇 飞龙在天
第1章 本地功能优化一:读写本地数据与使用LBS服务
第1课 读写本地缓存 5.4k
1.1.1 创建数据服务单例,实现本地数据读取
1.1.2 拓展:使用Storage面板管理本地缓存数据
1.1.3 面向Promise编程:异步代码转同步
1.1.4 如何清除本地缓存?
1.1.5 本课小结
第2课 使用FileSystemManager读写本地文件 2.8k
1.2.1 读写本地文件
1.2.2 面向Promise编程:避免使用try catch
1.2.3 本课小结
第3课 使用腾讯位置服务显示用户城市 3.5k
1.3.1 使用腾讯位置服务
1.3.2 拓展:小心隐藏字符错误
1.3.3 解决异步接口回调函数简写引发的错误
1.3.4 使用“异步代码转同步”技巧重写LBSManager
1.3.5 本课小结
本章小结
第2章 本地功能优化二:优化游戏体验
第4课 优化游戏体验:添加背景图片和顶层UI 9.2k
2.1.1 添加适配不同机型的背景图片
2.1.2 使用有限字符的自定义字体
2.1.3 在左挡板失误时振动
2.1.4 监听并处理背景音乐的意外暂停
2.1.5 实现游戏暂停与恢复的可控制,显示一个暂停切换按钮
2.1.6 解决游戏暂停后定时器不暂停的问题
2.1.7 添加游戏顶层UI,在退出功能实践中理解对象的封装性
2.1.8 本课小结
第5课 优化游戏性能:监听全局错误,记录错误日志 4.5k
2.2.1 监听全局错误,使用外观模式记录错误日志
2.2.2 允许打开设置页面,用户自己管理授权
2.2.3 拓展:关于小游戏UI层结构的说明
2.2.4 主动进行垃圾回收
2.2.5 拓展:如何控制屏幕亮度?
2.2.6 本课小结
本章小结
第3章 本地功能优化三:插上营销和广告盈利的翅膀
第6课 添加好友排行榜,为社交营销助力 7.1k
3.1.1 实现一个游戏内玩家排行榜
3.1.2 实现好友中心玩家排行榜
3.1.3 开启游戏圈:从小游戏中进入游戏圈
3.1.4 开启客服会话:在小游戏中直接打开客服窗口
3.1.5 开启用户意见反馈通道
3.1.6 添加防沉迷机制
3.1.7 本课小结
第7课 添加广告 1.9k
3.2.1 添加Banner广告
3.2.2 添加视频激励式广告
3.2.3 本课小结
本章小结
第4章 使用云开发技术一:创建与使用云函数
第8课 创建第一个云函数 4.5k
4.1.1 配置云开发
4.1.2 开通云环境
4.1.3 在云数据库中创建集合
4.1.4 认识云函数
4.1.5 创建云函数
4.1.6 本课小结
第9课 调试和调用云函数 2.0k
4.2.1 云端测试
4.2.2 本地调试
4.2.3 调用云函数
4.2.4 本课小结
第5章 使用云开发技术二:使用云数据库读写数据
第9课 在小游戏端直接操作云数据库 2.6k
5.1.1 在小游戏中初始化云环境
5.1.2 直接操作云数据库集合
5.1.3 拓展:了解云数据库中的数据类型
5.1.4 本课小结
第11课 两种方式实现分页查询 3.2k
5.2.1 实现分页查询
5.2.2 使用聚合查询
5.2.3 使用循环的方式清空小数据集合
5.2.4 拓展:为查询字段添加索引,提升执行效率
5.2.5 拓展:了解集合的权限控制
5.2.6 本课小结
第9课 用户如何操作自己创建的数据:查询与更新 3.4k
5.3.1 查询用户自己添加的历史游戏数据
5.3.2 在调试区测试云函数
5.3.3 使用原子操作,更新用户自己创建的数据
5.3.4 拓展:关于数据库操作符和数据库聚合操作符
5.3.5 拓展:使用云文件ID
5.3.6 本课小结
本章小结
第6章 编写后端代码一:用Node.js实现接口交互及处理客服消息
第10课 准备MySQL数据库 4.0k
6.1.1 安装MySQL数据库与数据库管理工具
6.1.2 创建数据库实例
6.1.3 创建数据表history
6.1.4 拓展:了解常用的MySQL数据类型
6.1.5 本课小结
第14课 实现history的三个RESTful API(Node.js版本)8.5k
6.2.1 启动模板项目
6.2.2 熟悉node-koa2项目模板结构
6.2.3 拓展:了解RESTful API设计规范
6.2.4 实现history的三个接口(Node.js版本)
6.2.5 拓展:学习九种HTTP请求方法
6.2.6 本课小结
第15课 在小游戏前端调用Node.js接口 5.2k
6.3.1 实现后台接口管理者模块,调用history的三个接口
6.3.2 扩展新方法getOpenid,注意保持新旧代码的兼容性
6.3.3 注意小游戏与小程序接口不一定一致
6.3.4 使用外观模式实现统一的存储服务外观管理者
6.3.5 本课小结
第16课 在服务器端接收和处理客服消息(Node.js版本)7.6k
6.4.1 使用内网穿透工具frp
6.4.2 在小游戏后台启用与配置消息推送
6.4.3 实现消息推送接口(Node.js版本)
6.4.4 拓展:如何使用Linux指令查杀、重启程序?
6.4.5 拓展:如何在Windows系统上运行Linux指令?
6.4.6 本课小结
本章小结
第7章 编写后端代码二:分别用Node.js和Go语言实现Web管理后台
第17课 实现Web管理后台的导航与登录功能(Node.js版本)10.2k
7.1.1 创建数据表account
7.1.2 拓展:互联网鉴权方式简介
7.1.3 实现登录
7.1.4 添加历史记录页面
7.1.5 个人开发者使用小微商户实现支付
7.1.6 本课小结
第18课 使用Go语言实现后端接口、客服消息处理及Web管理后台 9.0k
7.2.1 使用go_iris项目模板
7.2.2 实现history的三个接口
7.2.3 使用curl测试接口
7.2.4 接收和处理客服消息
7.2.5 实现登录功能
7.2.6 实现历史记录页面
7.2.7 拓展:如何让Go语言下载模块快一些?
7.2.8 本课小结
本章小结
第8章 后端Go语言实例讲解一:环境配置、运算符和基本数据类型 57.6k
第19课 迈出Go语言编程第一步 15k
8.1.1 安装Go语言开发包(示例1~2)
8.1.2 配置Go语言编辑器
8.1.3 一个Go语言程序的基本结构
8.1.4 Go语言基本标记
8.1.5 基本数据类型及字面量
8.1.6 复合数据类型(示例3~9)
8.1.7 全局变量与形参(示例11)
8.1.8 零值与类型推断(示例9~10)
8.1.9 包(示例14)
8.1.9 注释
8.1.11 本课小结
第20课 6类运算符 3.5k
8.2.1 算术运算符(示例15)
8.2.2 关系运算符(示例16)
8.2.3 逻辑运算符(示例17)
8.2.4 位运算符(示例18)
8.2.5 赋值运算符(示例19)
8.2.6 指针运算符(示例20)
8.2.7 运算符的优先级
8.2.8 本课小结
第21课 5个基本数据类型 3.5k
8.3.1 6类数据类型(示例22)
8.3.2 数字类型(示例23~24)
8.3.3 字符串类型(示例25~26)
8.3.4 零值(示例27)
8.3.5 类型推断
8.3.6 本课小结
本章小结
第9章 后端Go语言实例讲解二:变量常量、逻辑控制语句、函数和闭包
第22课 变量、常量与作用域 5.5k
9.1.1 变量(示例28~32)
9.1.2 作用域(示例33)
9.1.3 常量(示例34~39)
9.1.4 本课小结
第23课 4种逻辑控制语句 4.6k
9.2.1 if语句(示例40)
9.2.2 if的便捷语句(示例41)
9.2.3 for循环语句(示例42~43)
9.2.4 无限循环(示例44)
9.2.5 循环控制关键字:break、continue和goto(示例45~46)
9.2.6 switch 语句(示例47~50)
9.2.7 使用select语句进行通道读写(示例51)
9.2.8 本课小结
第24课 函数 4.5k
9.3.1 函数的定义与调用
9.3.2 函数的返回值
9.3.3 函数参数
9.3.4 函数的3种特殊用法
9.3.5 使用defer在函数退出前执行代码
9.3.6 本课小结
第25课 递归函数与闭包 1.5k
9.4.1 使用递归函数实现阶乘(示例61)
9.4.2 斐波那契数列(示例62)
9.4.3 闭包(示例63)
9.4.4 本课小结
本章小结
第10章 后端Go语言实例讲解三:复合数据类型
第26课 数组(array)2.4k
10.1.1 数组
10.1.2 多维数组
10.1.3 向函数传递数组
10.1.4 本课小结
第27课 切片(slice)2.8k
10.2.1 定义切片
10.2.2 切片的零值
10.2.3 切片初始化
10.2.4 使用append 和 copy 函数操作切片
10.2.5 切片和数组有什么区别?
10.2.6 本课小结
第28课 字典(map)4.1k
10.3.1 声明字典
10.3.2 初始化字典
10.3.3 如何访问字典成员?
10.3.4 使用delete删除字典成员
10.3.5 使用泛型解决Go语言类型宽泛的问题
10.3.6 使用range遍历集合数据
10.3.7 本课小结
第29课 结构体(struct)与接口(interface)5.0k
10.4.1 认识结构体(struct)
10.4.2 定义结构体
10.4.3 声明结构体变量
10.4.4 在结构体上定义方法
10.4.5 了解Go语言的自动解引用、取引用机制
10.4.6 访问结构体成员
10.4.7 结构体指针
10.4.8 将结构体指针作为函数参数传递
10.4.9 定义接口(interface)
10.4.9 以接口作为变量类型
10.4.11 空接口(interface{})
10.4.9 本课小结
第30课 指针与错误(error)5.2k
10.5.1 认识指针
10.5.2 4种常见的指针操作
10.5.3 空指针
10.5.4 指针数组
10.5.5 使用非安全指针操作数据
10.5.6 了解unsafe包的3个指针函数和Go语言的3类指针
10.5.7 将指针作为函数参数
10.5.8 错误(error)
10.5.9 本课小结
本章小结