- 3.5 AOI格子添加删除操作
3.5 AOI格子添加删除操作
mmo_game/core/aoi.go
//通过GID获取当前格子的全部playerIDfunc (m *AOIManager) GetPidsByGid(gID int) (playerIDs []int) {playerIDs = m.grids[gID].GetPlyerIDs()return}//移除一个格子中的PlayerIDfunc (m *AOIManager) RemovePidFromGrid(pID, gID int) {m.grids[gID].Remove(pID)}//添加一个PlayerID到一个格子中func (m *AOIManager) AddPidToGrid(pID, gID int) {m.grids[gID].Add(pID)}//通过横纵坐标添加一个Player到一个格子中func (m *AOIManager) AddToGridByPos(pID int, x, y float32) {gID := m.GetGidByPos(x, y)grid := m.grids[gID]grid.Add(pID)}//通过横纵坐标把一个Player从对应的格子中删除func (m *AOIManager) RemoveFromGridByPos(pID int, x, y float32) {gID := m.GetGidByPos(x, y)grid := m.grids[gID]grid.Remove(pID)}
