狀態同步模式下的遊戲掉線重連

2021-08-05 19:29:09 字數 1329 閱讀 4459

狀態同步模型下,所有的遊戲邏輯、資料都會儲存在服務端。對於開房間式的遊戲(比如5v5這類),玩家的狀態都可以在每乙個房間room內維護著。

local room = ,           --幀資料列表(一局遊戲的所有幀資料)

tmp_frame_msg_list = {}, --臨時的幀資料列表

atk_list = {}, --維護戰鬥道具的列表(如飛行中的子彈

frame_time_id = -1, --幀訊息定時器id

colider_time_id = -1, --碰撞計算定時器id

}

local player =
--玩家重新上線處理器

function

m.on_reconnection(client_id,room)

m[client_id] = room

end-- 玩家下線事件處理器

function

m.on_disconnected(client_id)

local room = m.get(client_id)

if room then

room:on_offline(client_id) --通知該房間內client_id的玩家掉線了

m[client_id] = nil --移除掉線玩家client_id所索引的房間(因為重連後的clien_id是變了的)

log:info("room.offline_players's num = " .. room.offline_player_num)

if room.offline_player_num < 2

then

return

end --沒有全部掉線則不銷毀房間

timer_queue:erase(room.frame_time_id) --清空房間定時器

timer_queue:erase(room.colider_time_id)

m.erase(room)

room:on_disconnected() --房間記憶體清理

if room ~= nil then

room = nil --記憶體清理

end log:info("room_mgr:on_disconnected")

end-- if room

end -- on_disconnected()

狀態同步模式下的遊戲掉線重連

狀態同步模型下,所有的遊戲邏輯 資料都會儲存在服務端。對於開房間式的遊戲 比如5v5這類 玩家的狀態都可以在每乙個房間room內維護著。local room 幀資料列表 一局遊戲的所有幀資料 tmp frame msg list 臨時的幀資料列表 atk list 維護戰鬥道具的列表 如飛行中的子彈...

CS模式網路遊戲的運動同步總結

概述 目前有2種網路遊戲拓撲結構 peer to peer和client server模式。在rts型別的遊戲中大都使用peer to peer的幀鎖定同步演算法 如紅警 帝國時代 war3等 目前主流引擎都自帶的是client server模式的伺服器 如unity3d,ue4等 在此推薦 mul...

WINCE下USB的同步模式與U盤模式的切換

在smdk2450.bat中,找到 set bsp usbfnclass serial rem set bsp usbfnclass mass storage set bsp kitl none rem set bsp kitl usbserial 修改為set bsp usbfnclass mas...