基础回顾
上一节介绍了麻将事件的基础登入回调函数, 但是在实际的游戏中被调用时此时并不能确定是否已经进入了游戏大厅, 还需要进一步判断是否已经进入了游戏, 以及是否已经开始游戏
如何判断
在 lobbymgr 这个库中提供了一些游戏状态可以辅助你进行判断游戏当前的状态
示例代码
package main
import (
"github.com/moxcomic/Archer/mgr/lobbymgr"
)
func onLogin() {
if lobbymgr.Inst.Enable() {
// 在游戏大厅页面
// On the game lobby page
} else {
// 不在游戏大厅页面
// Not on the game lobby page
}
}
进阶代码
- 上面的代码仅能判断一次是否在大厅页面, 但是进入大厅不是立刻完成的, 所以我们需要使用循环进行判断
package main
import (
"github.com/moxcomic/Archer/mgr/lobbymgr"
)
func onLogin() {
for range time.Tick(time.Second) {
if !lobbymgr.Inst().Enable() {
fmt.Println("正在等待进入大厅...")
continue
}
break
}
}
- 当然这只是一个例子, 具体的游戏逻辑需要根据实际情况进行判断