大厅功能:修订间差异
Liuweichen(留言 | 贡献) |
Liuweichen(留言 | 贡献) |
||
第32行: | 第32行: | ||
== 大厅游戏工作流说明 == | == 大厅游戏工作流说明 == | ||
=== 核心代码架构 === | |||
=== client监听的回调 === | |||
为了方便说明,请打开demo中'''/src/client/index.ts''',里面比较清晰的监听了核心事件 | 为了方便说明,请打开demo中'''/src/client/index.ts''',里面比较清晰的监听了核心事件 | ||
其中有一部分GameManager的代码涉及到状态机的管理,我们先不看状态机的逻辑,后面再说 | 其中有一部分GameManager的代码涉及到状态机的管理,我们先不看状态机的逻辑,后面再说 | ||
=== 进入大厅 === | |||
==== 预加载资源 ==== | |||
在进入玩法内时,会有一个promise的异步接口供开发者使用去预加载资源,比如表格,比如读取文件配置等等。 | |||
<span style="color: red;">'''必须在加载完成的回调中resolve'''</span> | |||
<pre> | |||
//预加载资源 | |||
XPopManager.onHallWait = new Promise((resolve)=>{ | |||
GameManager.instance.onPreLoadRes(()=>{ | |||
resolve("Resource loaded successfully hall"); | |||
}); | |||
}); | |||
</pre> | |||
==== 进入大厅 ==== | |||
在游戏启动后,会直接进入大厅,可以监听'''onHallStart''' | 在游戏启动后,会直接进入大厅,可以监听'''onHallStart''' | ||
第47行: | 第68行: | ||
</pre> | </pre> | ||
=== 开始匹配 === | ==== 开始匹配 ==== | ||
=== 匹配成功 === | ==== 匹配成功 ==== | ||
=== 进入战斗 === | ==== 进入战斗 ==== | ||
=== 战斗返回大厅 === | ==== 战斗返回大厅 ==== | ||
=== 离开整个游戏 === | ==== 离开整个游戏 ==== |
2024年9月4日 (三) 08:25的版本
老项目升级环境配置
项目demo地址
[git地址](https://git.jumpw.com/popx_demo/demox.git)
分支:hall_test
添加src/hall/index.ts的大厅服务器入口文件
修改打包配置rollup
- rollup.config.js新增打包大厅index.js的配置
- rollup.config.js加一下服务类的白名单
修改html启动文件
- 拷贝覆盖index.html到你的项目中,拷贝hall.html本地大厅文件到同一文件夹下
审核后台勾选大厅
只有勾选了大厅后,登录流程才会走大厅的逻辑,否则是走的老的流程,直接进战斗房间
大厅游戏工作流说明
核心代码架构
client监听的回调
为了方便说明,请打开demo中/src/client/index.ts,里面比较清晰的监听了核心事件
其中有一部分GameManager的代码涉及到状态机的管理,我们先不看状态机的逻辑,后面再说
预加载资源
在进入玩法内时,会有一个promise的异步接口供开发者使用去预加载资源,比如表格,比如读取文件配置等等。
必须在加载完成的回调中resolve
//预加载资源 XPopManager.onHallWait = new Promise((resolve)=>{ GameManager.instance.onPreLoadRes(()=>{ resolve("Resource loaded successfully hall"); }); });
进入大厅
在游戏启动后,会直接进入大厅,可以监听onHallStart
//进入大厅 XPopManager.onHallStart = () => { GameManager.instance.onEnterHall(); }