同步問題解決的一些思路

2021-08-14 05:12:26 字數 1054 閱讀 6316

移動同步:

move():執行一次移動

sendmove:傳送移動資料報

check move or cheat:位置校驗,作弊校驗

sendmoveadjust:下發糾正資料報

adjust move():糾正或回滾位置

onserializeothers:同步屬性到遠端客戶端

瞬發技能同步:

關鍵點:

local player 傳送射擊事件,由 server 同步給 remote player 進行表現

本地檢測命中後預表現命中效果,需傳送當前時刻的狀態資料給 server 

server 收到後驗證命中是否合理

校驗通過,應用傷害並同步給所有客戶端

命中判定方案:

優先滿足射擊的人,多數情況下射擊是會成功命中的

客戶端傳送命中上報序號、狀態、時間戳、方向、命中位置、玩家資訊(彈量等)

server 在收到資料後進行狀態的重現並計算

判定通過,執行命中邏輯並廣播給所有客戶端

aoe類同步:

關鍵點:

本地通過前搖推遲子彈發射時間,由 server 發起子彈建立並通過給所有客戶端

所有客戶端均存在彈道延遲,通過 dead reckoning 演算法計算當前位置,再通過插值演算法實現幀間平滑效果

命中判定方案:

射擊行為監控,server 建立影子快照,採集 2s 內發射資訊(不做物理檢測)

記錄歷史玩家狀態,支援按序號或時間回滾,加入超時機制

基於以上資訊做位置、方向、發射頻率、彈量等策略匹配

jsonp跨域同步問題解決思路

使用jsonp技術可以解決跨域,由於jsonp本身特點所以不能同步執行,也就是說如果有多個jsonp請求會非同步執行,如果多個jsonp之間存在依賴關係,就必須要求順序執行。這裡提供兩種解決思路 1 在前乙個jsonp返回成功後再執行第二個請求 2 對於所有的頁面的業務請求都要依賴的jsonp請求,...

Linux vim一些問題解決

1.按 i 後,沒有出現insert 解決方法 在vimrc檔案中,加入set showmode 2.backspace鍵不能刪除,同時方向鍵在insert模式下會打出abcd 解決方法 在vimrc檔案中,加入set nocompatible 3.backspace在insert模式下不能刪除空行...

ubuntu的一些問題解決

引用 http dx.ylmf.net read.php?tid 1085946 fpage 0 toread uid 722851 page 1 解決問題 知識所在樓層及內容 1.ubuntu是什麼?2.零命令玩轉ubuntu 8.10 livecd光碟安裝篇 3.什麼是wine? 4.零命令玩轉...