Функция vReceiveTurnMessage()
Когда вы ждете получения хода от другого игрока, работает функция приема сообщения о ходе. Она сидит и ждет пока пакет с данными хода не придет по проводам. Как только прибывает пакет, устанавливается флаг хода и отображается кнопка Turn Done. Вот как выглядит код, выполняющий эти задачи:
void vReceiveTurnMessage(void) { char szTurnPacket[32]; intiBytes = 0;
iBytes = recv(g_skClientSocket, szTurnPacket, 32, 0); // Проверка возвращенного кода if(iBytes != SOCKET_ERROR) { } else { vShowText("** ERROR ** Receiving"); return; } // Переключение в режим отправки g_bMyTurn = 1;
// Отображение кнопки Turn Done hBU_TurnDone = CreateWindow( "BUTTON", "Turn Done", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 5, 280, 100, 28, g_hWnd, (HMENU)IDC_hBU_TurnDone, g_hInst, NULL); }
В функции приема я вызываю функцию recv для приема пакета от другого игрока. Как только пакет пришел, код устанавливает флаг хода и создает кнопку Turn Done. Вот и все об отправке и получении пакетов!
В этом разделе я только прикоснулся к поверхности огромной темы программирования многопользовательских игр. Надеюсь, вам хватит предоставленной информации, чтобы хотя бы начать работу над походовой сетевой игрой.
netlib.narod.ru | < Назад | Оглавление | Далее > |