我正在使用Google Api創建一個Real Time Multiplayer - 使用libGDX自上而下的射擊遊戲。GoogleApi Real Time Multiplayer推送更新
球員位置上的 「渲染()」 方法的每一個電話送過來 「sendUnreliableMessage」:
- 渲染()調用。
- 「設備A」通過「sendUnreliableMessage」發送本地播放器位置(x,y)和移動方向。
- 「設備B」收到消息。在最後一個位置(x,y)和新位置(x,y)之間進行插值。
- 「Device B」將本地敵方玩家移動到新位置。 (插值和最終位置)
由玩家拍攝的子彈送過來「sendReliableMessage」是這樣的:
- 玩家按下「點火」按鈕。
- 子彈對象在本地「設備A」上創建並開始飛行。
- 子彈創建位置(x,y)和方向由「sendReliableMessage」發送給其他玩家。
- 「Device B」接收到消息,並在接收到的起始x和y上本地創建一個Bullet對象,並使其在接收到的方向飛行。
移動消息在每個「render()」調用上發送。 - 取決於每秒30-60次的FPS。
子彈消息只在按下「fire」按鈕時發送。只有一次。只有子彈的「創造位置」。兩個設備都會從這個位置本地計算更新。
我的問題和問題是:
- 更新這樣的球員位置的方式往往對不對?
- 鏡頭正在迷失。 1-3這是大約50-80%的封裝損耗。
我測試的只是移動時發送玩家位置的更新。然後靜止拍攝4次(沒有「玩家位置'不可靠的消息'被髮送) 和所有4個鏡頭出現在」設備B「
這讓我覺得」reliableMessages「迷路時,我發送」unreliableMessages「每次幀更新(大約每秒30-60次)
我感謝您花時間寫出答案,但您真的沒有幫助我。我已經意識到這兩個消息傳遞協議,並且已經在我的帖子中解釋了我正在使用哪一個,並且我使用插值來解決丟包問題。 - 我也完全知道谷歌文檔寫和解釋什麼,這篇文章的全部內容是即使「可靠的消息」的「交付,inegrity,和訂購」不能保證。 – MarvinJ