对egret引擎开发微信小游戏过程中的通用数据结构及基础代码进行提取,方便复用
拉取整套套件,以egret launcher导入dev_kit项目,
设置发布为微信小程序,填入小程序appid
根据自身项目服务器接口逻辑,配置dev_kit/src/GameData/GameConfig.ts内basicUrl地址
可按项目接口格式要求调整 dev_kit/src/components/Http.ts 内请求格式
若开放数据域同样有自身接口需求,配置openDataContext/src/data/GameConfig.ts内basicUrl地址
部分常用接口调用示例,可见dev_kit/src/main.ts 内 createGameScene()方法
对标微信小游戏api标准文档,对非必传字段作出兼容,减少冒红
1.基础Http通讯,调用 new Api(token)传入token后可以进行http通讯
1.基本websocket通讯封装(todo)
2.基于websocket协议上的 mqtt 协议实现帧同步联机功能的封装(todo)
-
await 调用 WxKit.login(),阻塞进程,拒绝授权时重复提醒,将信息写入UserData内,返回 {code,iv,encryptedData}
-
微信新版与旧版登录流程兼容处理,WxKit.login已实现新老版本登陆方法兼容处理,老版本则弹出需要授权提示窗口,新版本则显示userInfoButton按钮,详情可见DEMO。
需要测试新老版本展示情况,可下载新版微信开发工具,打开项目后切换基础运行库版本进行查看
1.微信初始化分享及显示分享按钮封装完成
2.微信分享调用封装完成(分为三类,普通分享,重生分享,群排名分享)其中根据埋点,群排名分为结果页群排名与排行榜群排名
1.await 调用 WxKit.rebornGame 方法,返回重生分享成功与否的布尔值
1.调用Records.updateScore 更新自己游戏成绩
2.调用Records.getScore 获取自己的游戏成绩
3.调用Records.uploadScore 上传成绩到自己服务器及腾讯云服务器
1.await 调用 Records.refreshWorldRanking 重新请求世界排行榜数据
2.调用 Records.getRankings 获取已缓存的世界排行榜数据(全榜)
1.主域调用开放数据域方法完成,调用WxKit.linkOpenData ,传入type决定获取数据类型为好友排行,群组排行和相邻好友
1.await调用 Records.getWeekRecord获取周最高成绩
2.await调用 Records.getHistoryRecord获取历史最高成绩
1.封装p2物理引擎(todo)
2.封装3d物理引擎(todo)
版本控制信息刷新功能完成
根据功能节点名查询版本控制情况调用完成
1.创建Bitmap对象:eKit.createBitmapByName(name: string, settings?: Object): egret.Bitmap
2.创建TextField对象:eKit.createText(text: string, settings?: Object): egret.TextField
3.异步创建用户头像的Bitmap对象:eKit.createAvatar(url: any = '', settings?: Object)
4.创建折线段矢量绘图对象:eKit.createLine(points: Array, param: { beginFill?: { color: number, alpha: number }, lineStyle?: { thickness?: number, color?: number, alpha?: number, pixelHinting?: boolean, scaleMode?: string, caps?: string, joints?: string, miterLimit?: number } }, settings?: Object): egret.Shape
5.创建矩形矢量绘图对象:eKit.createRect(points: Array, param: { beginFill?: { color: number, alpha: number }, lineStyle?: { thickness?: number, color?: number, alpha?: number, pixelHinting?: boolean, scaleMode?: string, caps?: string, joints?: string, miterLimit?: number } }, settings?: Object): egret.Shape
6.创建圆形矢量绘图对象:eKit.createCircle(points: Array, param: { beginFill?: { color: number, alpha: number }, lineStyle?: { thickness?: number, color?: number, alpha?: number, pixelHinting?: boolean, scaleMode?: string, caps?: string, joints?: string, miterLimit?: number } }, settings?: Object): egret.Shape
7.创建圆弧路径矢量绘图对象:eKit.createArc(points: Array, param: { beginFill?: { color: number, alpha: number }, lineStyle?: { thickness?: number, color?: number, alpha?: number, pixelHinting?: boolean, scaleMode?: string, caps?: string, joints?: string, miterLimit?: number } }, settings?: Object): egret.Shape
8.创建圆角矩形矢量绘图对象:eKit.createRoundRect(points: Array, param: { beginFill?: { color: number, alpha: number }, lineStyle?: { thickness?: number, color?: number, alpha?: number, pixelHinting?: boolean, scaleMode?: string, caps?: string, joints?: string, miterLimit?: number } }, settings?: Object): egret.Shape
9.创建序列帧方法(已完成)
10.创建Sprite方法(完成)
11.移除指定子节点(完成)
12.清空父元素内的子节点(完成)
13.粒子系统封装(已完成)
根据微信小游戏的音频API封装简易的音频加载及播放调用函数
对于并发音频事件(如连续的击中音效)的优化处理(完成)
调用 Api.postEvent()传入event_type即可调用埋点方法
游戏打开埋点于登陆成功之后
分享埋点于分享成功回调