吃雞 客戶端視野管理,管理掉落物

2022-07-30 11:00:19 字數 2106 閱讀 5648

<1>原因:

在吃雞場景中,有很多掉落物(每種掉落物模型各不相同),伺服器在進入場景的時候推送了所有掉落物,後面伺服器只做更新掉落和刪除掉落操作

客戶端需要對這些掉落物做視野管理,模型太多手機記憶體開銷太大,也很可能因為記憶體過高崩潰

<2>思路:

把地圖劃分成均勻網格,每個掉落物存在網格之中,玩家每次更新自身格仔索引,把九宮格之內的物體載入顯示,把上次九宮格之內的物體做**,公共部分不用動

<3>**:

**都是在lua這邊實現

--掉落物管理相關

local mapx = 0 --地圖寬

local mapy = 0 --地圖長

local mapcenterx = 107 --地圖中心x

local mapcentery = 176 --地圖中心y

local rowsize = 24 --格仔行高 rowsize

local colsize = 24 --格仔列高 colsize

local maxrow = math.ceil(mapx/rowsize) --多少行

local maxcol = math.ceil(mapy/colsize) --多少列

local allcount = maxrow*maxcol ---格仔總數

local startx = (-mapx/2)--+mapcenterx -- (-(mapx/2-mapcenterx))/2--格仔起始座標x

local starty = (mapy/2)--+mapcentery --(mapy-mapcentery)/2--格仔起始座標y

關鍵方法提供

1.根據玩家當前格仔索引獲取九宮格索引

--獲取格仔周圍所有格仔

function battleroyaledropmgr:getroundindex(index)

local lst = {}

--top 沒有上 r1r2r3 --bottom沒有下 r6r7r8 --left沒有左r1r4r6 --right沒有右r3r5r8

local istop = index<=maxrow

local isbottom = index > (maxcol-1)*maxrow

local isleft = index%maxrow == 1

local isright = index%maxrow == 0

local filter = {}

local r1 = index - maxrow - 1

local r2 = index - maxrow

local r3 = index - maxrow + 1

local r4 = index - 1

local r5 = index + 1

local r6 = index + maxrow - 1

local r7 = index + maxrow

local r8 = index + maxrow + 1

if istop then

filter[r1] = true

filter[r2] = true

filter[r3] = true

endif isbottom then

filter[r6] = true

filter[r7] = true

filter[r8] = true

endif isleft then

filter[r1] = true

filter[r4] = true

filter[r6] = true

endif isright then

filter[r3] = true

filter[r5] = true

filter[r8] = true

end

local result =

for i =1,#result do

if filter[result[i]] == nil then

lst[result[i]] = true

endend

lst[index] = true

return lst

end

AD管理linux客戶端

ad1.corp 是貴司windows ad上 corp這個域的全域性主域控制器 loginno 是貴司ad域 corp中乙個組 admin.win 是貴司ad域 corp中的乙個具有管理員許可權的使用者 daha.ma 是貴司ad域 corp中的乙個普通使用者 sudono 是貴司ad域 corp...

正方教務管理系統IOS客戶端

最近完成了正方教務管理系統的ios客戶端。現在記錄一下心得。用到的幾個工具 1.chrome的開發者工具 檢視每次http請求命令與引數等。2.afnetworking ios網路請求開源框架,同樣的有asihttprequest 選擇afnetworking是因為它更簡單,並且現在還在更新維護,a...

客戶端開發分支管理哪些事

分支管理規範 總的工作流程圖如下所示 主要分支 倉庫中有兩個長期的分支 master develop master 用作生產分支,裡面的 是準備部署到生產環境的。develop 是可交付的開發 也可以看成是用於整合分支,每晚構建從develop 獲取 當 develop 分支中的 足夠穩定的時候,就...