2010-03-10 84 views
1

我想了解我想要使用GameKit進行藍牙連接的遊戲所需的基本步驟。我只有1個設備,所以我不能很容易地測試我的想法。GameKit藍牙

遊戲最多通過GameKit通過藍牙接收2名玩家,唯一發送/接收的數據是隻包含位置和方向數據的「鏡頭」。

這是我認爲應該發生,我真的只是想有人指出任何錯誤我犯了:

  • 比賽開始通過提出GKPeerPickerController與connectionTypeMask「GKPeerPickerConnectionTypeNearby」和設置它代表'自我'。

  • 實現了GKPeerPickerController委託方法'peerPickerController:didConnectPeer:toSession:',並將會話dataReceiveHandler設置爲self。 peerID被添加到一個保存所有連接的對等ID的NSMutableArray。 (任何時候只能有一個對等點連接)。

  • 爲了強制每場比賽只有1個對等連接,方法'session:didReceiveConnectionRequestFromPeer:'檢查持有連接的peerID的NSMutableArray的'count'屬性。如果'count'> 0,那麼我們通過調用'denyConnectionFromPeer'來回應:'else,我們調用:'acceptConnectionFromPeer:error:'

  • 要發送一個鏡頭,遊戲會調用:'sendData:toPeers:withDataMode:error: 「

  • 要接收的鏡頭,遊戲響應: 'receiveData的:fromPeer:inSession:背景:'

是否有任何步驟失蹤?例如,如果用戶在連接到我之前嘗試連接到我,我的GKPeerPickerController會發生什麼情況?我如何知道解僱它?

沒有另一個iPhone/iPod我無法測試。

回答

3

首先,如果你想在Gamekit中測試藍牙,你真的需要第二個設備。如果您認真對待您的應用程序,請嘗試購買將支持GameKit藍牙的低價/翻新iPhone或iPod Touch(最舊的設備不這樣做)。我其實認爲你用兩臺Mac進行測試會更好,但是如果你還沒有第二臺Mac那麼昂貴的話。

您上面發佈的內容非常正確 - 實際上使用PeerPicker非常簡單,您應該可以輕鬆使用Apple的文檔輕鬆完成。問題是,根據我的經驗,這有點太過分了。這可能是因爲我正在使用3GS和3G進行測試,並且它們內部具有不同的藍牙,但是當您描述的情況出現時,很多時候我會看到奇怪的事情 - 「如果用戶在連接之前嘗試連接到我給他們。」最後它通常仍然有效,但不是沒有一點等待的開銷,也許用戶不得不重複這個過程一兩次。

+0

正是.......! – 2012-04-11 05:27:05