我編寫了一個使用gamekit點對點連接的炸彈人應用程序。問題是過了一段時間,遊戲不再同步。遊戲工具包點對點
我看了GKTanks的示例代碼並使用了他們的模型。同伴之間沒有客戶端/服務器關係,所以我沒有在我的遊戲中使用它。兩個同伴都維護一個他們根據收到的數據進行更新的遊戲狀態。
我有一個NSTimer用於在每一幀運行gameloop。 NSTimers不同步,因此有時候遊戲狀態會變得不同:例如,玩家幾乎在同一時間選擇加電,並且兩者都獲得加電,因爲發送數據需要一段時間。
我將不勝感激關於使應用程序工作的任何想法。我正在考慮重寫代碼以使用客戶端服務器,但我不確定它是否是個好主意...但是
謝謝!
編輯:我改變了代碼,這樣隨機播放器被挑選爲主機。每當玩家放置炸彈時,他都會詢問服務器放置在哪裏。服務器返回玩家位置(如服務器上所示),然後告訴玩家放置炸彈的位置。
對於通電服務器檢查是否玩家拿起電源,如果他做了,它會發送一個數據包通知他。
現在又出現了另一個問題。設備之間的延遲很高(我正在使用藍牙連接)。客戶點擊按鈕放置炸彈後需要大約0.2秒的時間。
我正在可靠地發送所有數據。我做對了嗎?