我有一個遊戲,使用Multipeer senddata每隔0.05秒發送一個玩家position.x,position.y和角度在一個可變陣列中。IOS/MultipeerConnectivity/SendData和ReceiveData之間的延遲
NSMutableArray *Messagee = [[NSMutableArray alloc] initWithCapacity:10];
[Messagee addObject:x];
[Messagee addObject:y];
[Messagee addObject:ang];
NSData* Message = [NSKeyedArchiver archivedDataWithRootObject:Messagee];
dispatch_async(dispatch_get_main_queue(), ^(void) {
[self.partyTime sendData:Message
withMode:MCSessionSendDataUnreliable
error:nil];
});
其他球員得到使用
- (void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID *)peerID;
我面對的是,didrecievedata被調用非常unregulary,因爲它應該每0.05秒調用的問題數據(i發送數據每0.05秒爲單位) 。
我在兩次didrecieve數據之間經歷了延遲上升到0.20秒的巨大差異,接下來的數據包爲0.00001秒。
我需要一個0.05秒的恆定didrecievedata等於來自另一個玩家的senddata來同步玩家位置。
有什麼辦法讓senddata和recievedata之間有一個很小的延遲?例如平等嗎?
是我的數據,我發送(NSMutableArray的)到大 - >延遲
我應該使用流?
非常感謝!