Форум: "Игры";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизМеню Найти похожие ветки
← →
Crazy_kill © (2003-09-11 01:31) [0]Народ подкиньте мыслей как сделать меню для игры (Как главное меню в играх Сохранить, Загрузить, Настройки и т.д. и т.п). Заранее спасибо.
← →
cyborg © (2003-09-11 08:23) [1]
Var
CurrentMenu : Integer = 1;
...
case НажатаяКлавиша of
КлавишаВверх : if CurrentMenu>1 then Dec(CurentMenu);
КлавишаВниз : if CurrentMenu<MaxNumMenu then Inc(CurrentMenu);
end;
...
Var
i : Integer;
...
for i:=1 to MaxNumMenu do if i=CurrentMenu then РисуемАктивныйПунктМеню else РисуемНеактивныйПунктМеню;
← →
NailMan © (2003-09-11 14:46) [2]Ну это от тебя зависит. Какую архитектуру GUI придумаешь делать, такую и сделалешь. Главное здесь удобство использования и желание повозиться. Если хочешь получить хорошее впечатление пользователей твоей игры, надо делать красивый и удобный интерфейс(я на этом собаку уже съел).
Сразу скажу можно юзать кем-то написанные элементы меню(про стандартные GDI-шные сразу забудь), но они могут быть не вполне гармонировать с архитектурой игры, поэтому предпочтительно(и сложнее ессно) написать свои элементы.
Я уже тут кидал ссылку на демку моего интерфейса, вот она:
http://nailman.narod.ru/Zakroma/UT_GUI_Demo.exe
Это уже скомпиленный интерфейс, но его можно менять(с количеством элементов лучше не баловаться), тоесть изменять некоторые параметры элементов(координаты, названия и т.д.).
Собсно я не далеко отошел от Дельфи - конфигурация меню расположена в обычном CFG файле, так что все очень просто.
Сам же алгоритм работы GUI довольно большой по содержанию(2 больших модуля), в котором жестко связаны все элементы меню в единую работу.
Каждое меню у меня выполнено отдельной процедурой, в которой по единому шаблону грузится нужная секция конфига, создаются в единых массивах элементы меню (label, button, checkbox, trackbar, panel, progressbar, listbox), а затем уже идет цикл меню, в котором рендерится само меню, опрашиваются устройства ввода и обрабатываются. На результат фенкции опроса/обработки быстрых событий(селектирование баттонов, строки листбокса, клик по баттону и д.р.) у меня выводится с некую переменную(с одновременным выводо всех стейтов меню) и далее я произвожу пост-обработку уже этих событий с case. Тут обрабатываются уже менюшные вещи(до этого обработка событий не конкретно меню, а класса GUI). Вобщем слегка запутанно на первый взгляд, но довольно четко в реализации.
Переход между менюхами я делаю через главный статус программы: присваиваю ему нужное значение и выхожу из менюхи, а далее в главном селекторе процессов запускается нужная процедура меню.
← →
Crazy_kill © (2003-09-15 00:31) [3]Большое спасибо за советы!!!!!!!!!!
← →
Andrey5 (2003-09-29 05:15) [4]Ссылка не работает
← →
NailMan © (2003-09-29 10:43) [5]Ну ка, а так:
http://nailman.narod.ru/Zakroma/UT_GUI_DEMO.exe
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.057 c