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

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


Итак, вы создали переменные состояния подсвечиваемых активных зон и сами зоны. Теперь пришло время отобразить эти зоны в функции 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.


Рис. 6.29. Изображения меню для реализации подсветки

На рис. 6.29 представлены пять изображений меню. На первом представлено меню в котором не подсвечен ни один пункт. Следующие четыре изображения представляют меню с различными состояниями подсветки. Каждое состояние характеризуется собственным подсвеченным пунктом меню. Пусть вас не смущает термин «подсветка». При желании вы можете полностью изменить изображение пункта меню.

Я отображаю на экране первое изображение с рис. 6.29, если ни одна из подсвечиваемых зон не активна. Я отображаю второе изображение, если подсвечивается пункт меню New Game, третье изображение если подсвечивается пункт меню Load Game и четвертое изображение если подсвечивается пункт меню Save Game. Пятое изображение показывается когда должен быть подсвечен пункт меню Options.

Это совсем не трудно, не так ли?

netlib.narod.ru< Назад | Оглавление | Далее >



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