Программирование стратегических игр с DirectX 9.0

bda5893f

Функция vTurnDone()


Функция завершения хода выполняет две различных задачи. Если сейчас ваш ход, она отправляет сообщение о завершении хода другому игроку и ждет получения сообщения. Если сейчас ход другого игрока, функция ждет, пока он не завершит свой ход. Ход выполнения функции показан на рис.14.18.


Функция vTurnDone()

Рис. 14.18. Ход выполнения функции vTurnDone()

Хотя блок-схема и выглядит запутанной, сам код не слишком сложен. Большая его часть занимается обработкой сообщений от окна. Если ее отбросить, оставшийся код будет выглядеть примерно так:

// Если соединение установлено, проверяем // надо получать или отправлять сообщение о ходе if(g_bConnected) { // Мой ход, отправляю сообщение if(g_bMyTurn) { // Убираем кнопку завершения хода DestroyWindow(hBU_TurnDone); // Отправляем сообщение о завершении хода vSendTurnMessage(); // Ждем получения сообщения vReceiveTurnMessage(); } else { // Ждем получения сообщения } }

Если вы сравните приведенный выше код с тем, который находится в файле main.cpp, то увидите что здесь код значительно короче. Я удалил из него текстовые сообщения, чтобы вам проще было увидеть, что происходит.



Содержание раздела