сетевая игра для iPhone - PullRequest
0 голосов
/ 24 июня 2011

Я уже знаю, как сделать онлайн-игру, используя Wi-Fi и Bluetooth, но сейчас я пытаюсь реализовать простую игру через Интернет (например, крестики-нолики), но я немного растерялся.

Я попробовал GET / POST, но я не знаю, как уведомить игрока, ожидающего перемещения, и как сохранить игровое состояние.

Нужно ли открывать сокет на стороне сервера и подключаться из приложения? Я уже сделал обширный поиск, но я могу найти только о Bluetooth и Wi-Fi, и это не то, что мне нужно.

Спасибо всем!

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Я бы порекомендовал эту библиотеку: http://code.google.com/p/cocoaasyncsocket/

На стороне сервера вы можете использовать что-то вроде node.js или Python Twisted для открытия соединений с сокетами.

Пример кода из одного из моих собственных проектов. Это устанавливает сокет, который просто читает с хоста каждые 10 секунд. Ваша игра будет немного другой:

- (void) createSocket { 
  aisSocket = [[AsyncSocket alloc]initWithDelegate:self];
  NSError *error;
  [aisSocket connectToHost:myServerString 
                    onPort:myServerPort 
                     error:&error];
}


- (BOOL)onSocketWillConnect:(AsyncSocket *)sock {
  NSLog(@"socket will connect");
  return YES;
}


- (void) readData:(NSNotification*)note {
  [[note.userInfo objectForKey:@"sock"] readDataWithTimeout:100 tag:0];
}   


- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port {
  NSLog(@"The socket is connected: %d", [aisSocket isConnected]);
  NSDictionary *dict = [NSDictionary dictionaryWithObject:sock forKey:@"sock"];
  NSTimer *timer = [[NSTimer scheduledTimerWithTimeInterval:(10)
                                                     target:self
                                                   selector:@selector(readData:)
                                                   userInfo:dict
                                                    repeats:YES]retain];
  [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}
0 голосов
/ 24 июня 2011

Прочитайте Пример кода WiTap от Apple , он должен соответствовать тому, что вы пытаетесь сделать.

Также обратитесь к Руководство по программированию GameKit , чтобы узнать, как заставить несколько устройств обнаруживать себя, а затем общаться друг с другом в игре (или чем-то еще)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...