Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
3-1079508735
Michail Dalakov
2004-03-17 10:32
2004.04.11
Сортировка в TClientDataSet


4-1075607631
Clift
2004-02-01 06:53
2004.04.11
Индикатор языка


11-1068199443
RA
2003-11-07 13:04
2004.04.11
TScrollBar. Создаю, но надо Max, Min и Position.


14-1081172037
VMcL
2004-04-05 17:33
2004.04.11
Поголубел :))


3-1081934441
kalishenko
2004-04-14 13:20
2004.04.11
Фильтр по дате





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский