Вниз
Скачать: CL | DM;

Меню   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
1-1080304501
GUEST_01234
2004-03-26 15:35
2004.04.11
Замена плюсиков в TreeView


1-1080055066
В л а д и м и р
2004-03-23 18:17
2004.04.11
Модальные формы


6-1079604130
Павел
2004-03-18 13:02
2004.04.11
Есть ли компонент перевода в html-код


4-1075017686
Elast
2004-01-25 11:01
2004.04.11
Perform


14-1079430833
miwa
2004-03-16 12:53
2004.04.11
Кстати, о литературе.




   Наверх