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

         

Как отобразить подсветку активной зоны


Итак, вы создали переменные состояния подсвечиваемых активных зон и сами зоны. Теперь пришло время отобразить эти зоны в функции vRender(). К счастью для вашей психики и рассудка по сравнению с предыдущим примером функция изменилась не слишком сильно. Вот самые главные изменения:

else if(g_iCurrentScreen == 1) { // Отображение главного меню vDrawInterfaceObject(0, 0, 256.0f, 256.0f, 0); vDrawInterfaceObject(256, 0, 256.0f, 256.0f, 1); vDrawInterfaceObject(512, 0, 256.0f, 256.0f, 2); vDrawInterfaceObject(0, 256, 256.0f, 256.0f, 3); vDrawInterfaceObject(256, 256, 256.0f, 256.0f, 4); vDrawInterfaceObject(512, 256, 256.0f, 256.0f, 5); // Отображение подсвеченных зон, если они есть // либо обычного меню без подсветки if(g_bMainMenu_NewGame_Highlight) { vDrawInterfaceObject(192, 64, 256.0f, 256.0f, 10); } else if(g_bMainMenu_LoadGame_Highlight) { vDrawInterfaceObject(192, 64, 256.0f, 256.0f, 11); } else if(g_bMainMenu_SaveGame_Highlight) { vDrawInterfaceObject(192, 64, 256.0f, 256.0f, 12); } else if(g_bMainMenu_Options_Highlight) { vDrawInterfaceObject(192, 64, 256.0f, 256.0f, 13); } else { // Меню без подсветки vDrawInterfaceObject(192, 64, 256.0f, 256.0f, 7); } }

Изменения выделены полужирным курсивом. Вместо того, чтобы рисовать при каждом вызове одно и то же изображение меню, программа теперь проверяет значения переменных состояния подсветки, чтобы определить какое именно изображение меню выводить на экран. Я создал четыре дополнительных изображения главного меню для представления всех возможных состояний подсветки. Все эти изображения представлены на Рисунок 6.29.



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