Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: 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 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.092 c
1-1082555935
ser_ega
2004-04-21 17:58
2004.04.11
Stringgrid


6-1079600116
Артут
2004-03-18 11:55
2004.04.11
компонента для HTTP


14-1079585165
Алина
2004-03-18 07:46
2004.04.11
Помогите, горит лабораторная!


6-1079884056
Asail
2004-03-21 18:47
2004.04.11
Как выполнить удаленный Restart/Shutdown в Delphi?


9-1071947099
HolyMan
2003-12-20 22:04
2004.04.11
Прогрессбар при накладывании 3ds файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский