```
feat(maps): 重构移动广播逻辑并优化数据结构 将 WalkOutInfo 结构体迁移至 maps/info 包,并调整相关引用。 移除旧广播逻辑,改用 Space.Walk 方法进行统一广播处理。 新增 PlayerI 接口方法 SendWalkMapInfo 以支持行走信息发送。 在 Player 和 AI_player 中实现 SendWalkMapInfo 方法。 引入限流器到 space 包,用于控制广播频率。 ```
This commit is contained in:
@@ -3,22 +3,19 @@ package controller
|
||||
import (
|
||||
"blazing/common/socket/errorcode"
|
||||
"blazing/logic/service/maps"
|
||||
"blazing/logic/service/maps/info"
|
||||
"blazing/logic/service/player"
|
||||
)
|
||||
|
||||
func (h Controller) Walk(data *maps.WalkInInfo, c *player.Player) (result *maps.WalkOutInfo, err errorcode.ErrorCode) {
|
||||
result = &maps.WalkOutInfo{
|
||||
Flag: data.Flag,
|
||||
Point: data.Point,
|
||||
Path: data.Path,
|
||||
}
|
||||
func (h Controller) Walk(data *maps.WalkInInfo, c *player.Player) (result *info.WalkOutInfo, err errorcode.ErrorCode) {
|
||||
|
||||
result.UserID = data.Head.UserID
|
||||
go c.GetSpace().Walk(info.WalkOutInfo{
|
||||
Flag: data.Flag,
|
||||
Point: data.Point,
|
||||
Path: data.Path,
|
||||
UserID: c.Info.UserID,
|
||||
})
|
||||
|
||||
//glog.Debug(context.Background(), err1)
|
||||
if !c.Info.Pos.BothLessThan50(data.Point) { //距离超过50才广播
|
||||
data.Broadcast(c.Info.MapID, *result) //走路的广播
|
||||
}
|
||||
c.Info.Pos = data.Point
|
||||
return nil, -1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user