DF_GUI v0.5
version 0.5 [ ОПИСАНИЕ ]~~~~~~~~~~~~~~~~~~~~~~ DF_GUI - это система для работы с различными элементами. В моей GUI системы реализованы следующие элементы: 1. Окно 2. Текст 3. Изображение 4. Поле ввода. 5. Скроллер. 6. Лист Каждый элемент может рисоватся как с помощью линий и прямоугольников, так и с помощью ваших рисунков. [ СКРИНШОТЫ ]~~~~~~~~~~~~~~~~~~~~~~ Есть 3 типа вывода кнопок: Так же можно и вытворять с окнами. А можно настраивать всем элементам картинки. [ АРХИВ ]~~~~~~~~~~~~~~~~~~~~~~ В архиве находится исходник и пример. Без ЕХЕ. ЕХЕ, если надо, могу отдельно сделать. [ БУДУЩЕЕ ]~~~~~~~~~~~~~~~~~~~~~~ В будущем намереваюсь сделать визуальное создание кнопок. То есть как , допустим, в VB. Выбираешь кнопку. Создаешь - растягиваешь до нужных размеров. В итоге тебе дается нужный код. Также может добавлю элементов. И, конечно же, исправление мелких усатых багов. [ ВНИМАНИЕ ]~~~~~~~~~~~~~~~~~~~~~~ Не использовать гуи со Strict и SuperStrict. Если их использовать - падение гуи неизбежно. Так как один объект эту переменную как рисунок использует, а другой - как число. Я тем самым сокращал кол-во переменных. В следущих версия (но они будут не скоро) исправлю. Это ведь версия 0.5 только ;) [ ТУТОРИАЛ ]~~~~~~~~~~~~~~~~~~~~~~ И небольшой туториал по использованию моего гуи в своих проектах. =-=-= Для начала давай подключим гуи для своего проекта. Код:
Include "GUI.bmx" Создадим окно. Код:
DF_GUI.Create_Window (640/2-100,480/2-50,200 , 160, "Main Menu" , "Window1",0,0,0,3,4,3) (x,y,width , height, text$ , name$, bexit , image, FocusOffDelete, DRL1=2 ,DRL2=1,DRL3=1 ) x, у - начальное положение окна. width , height - ширина и высота окна. text - что будет в загаловке окна. name - имя окна. Используется для вызова некоторых функций. bexit - будет ли кнопка выхода. [0,1-будет] image - картинка для окна. Можно оставить равным 0, а можно загрузить картинку. Если картинка будет загружена, то она слева, и весь текст тоже смешается влево. FocusOffDelete - если фокус проподает с окна - удалить? 1-да 0-нет DRL1 - тип вывода линий. 1 - вверх. 2-вниз 3-ровно DRL2,DRL3 - тип вывода прямоугольника. 1 - ровно. 2-градиент. 3-градиент. 4- сильно прозрачное. DRL2 - на само окно. DRL3 - на полосу с названием. Самое крутое это 1,1,2 или 3,4,3. Если надо выводить с картинкой: Код:
DF_GUI.Create_WindowImage (x,y,image, name$, FocusOffDelete, DrapNDrop) Код:
DF_GUI.Create_Text (x,y,R,G,B, text$ , name$, wind$ ) Wind - к какому окну принадлежит объект. Определяется окно по имени. R,G,B - цвет. Код:
DF_GUI.Create_Bar (x,y,width,n1 , name$, wind$ ) Width - ширина скроллера. Высота - 25 пкс. n1 - сколько значений будет в скроллере. Код:
DF_GUI.Function Create_BarImage (x,y,image,image2,n1 , name$, wind$ ) image2 - ползунок. Код:
DF_GUI.Create_Image (x,y,image , name$, wind$ ) Код:
DF_GUI.Create_Input (x,y,width,height,text$ , name$, wind$ ) text - что вначале будет в поле ввода. Код:
DF_GUI .Create_InputImage (x,y,text,Image , name$, wind$ ) Ширина и высота определяются шириной и высотой картинки. Код:
DF_GUI.Create_List (x,y,width,text$ , name$, wind$ ) Текст писать так: "TEST1|TEST2|TEST3|" В конце обяхательно |, иначе не будет последнего элемента. Максимум 10 элементов. Потом, если потребуется, можно сделать легко и больше. Код:
DF_GUI .Create_ListImage (x,y,image,text$ , name$, wind$ ) Код:
DF_GUI.Create_Button (x,y,width, height , image, text$, name$, wind$ ) image - тип вырисовки [1,2,3,4] Код:
DF_GUI.Create_ButtonImage (x,y, image,imagec,imagedown, name$, wind$ ) imagec - если навели курсор. imagedown - если нажали. Вот пока и все эелементы. Функции для работы с ними: Проверка на нажатие на кнопку. GUI_ButtonDown (Window$, Button$) Window - окно Button - название вашей кнопки. Изменить поле text: ChangeText (Window$, obj$ , text$) Window - окно Obj - объект (Input,Button,Text,List,Bar) Text - на что меняем. Для bar - число. Получить значение поля text : GetText (Window$, obj$) Window - окно Obj - объект (Input,Button,Text,List,Bar) Есть ли фокус: GetFocus (Window$, obj$ ) Window - окно Obj - объект (Input,Button,List,Bar) Закрыть окно: ExitWindow (Window$) Продолжаем наш проект. Имеется : Код:
Graphics 640,480 Теперь у нас будет работать само окно. Но так ведь не интерестно? добавим надпись: Код:
DF_GUI.Create_Text (10,0,200,200,200, "Preved, Medved." , "Text1", "Window1" ) DF_GUI.Create_Button (10,50,180, 20 ,3, "Exit", "Button1", "Window1" ) Создадим кнопку. Так. Теперь есть некоторые элементы. Добавим в цикл, после GUI_Update() : ChangeText ("Window1", "Button1" , GetText ("Window1", "Text1")) Это меняет у нас название кнопки на название текста. Можно сделать два варианта завершения программы: If GUI_ButtonDown ("Window1", "Button1") Then ExitWindow ("Window1") Просто закрывает окно. If GUI_ButtonDown ("Window1", "Button1") Then End Завершает саму программу. Я остановлюсь на втором. Вот весь текст: Код:
Graphics 640,480 :crazy: :super: :-) |
Re: DF_GUI v0.5
Кстати, пример, к сожалению , рабоать не будет. Надо удалить первую строчку - будет норм.
|
Re: DF_GUI v0.5
Всё это очень хорошо теперь для Блитс 3д сделай)
|
Re: DF_GUI v0.5
magpro, все это хорошо, но для blitz3d есть МоКина система : mGUI .
Хе, слишком большой тутор. Люди просто бояццо видимо все это прочитать и понять *лол* На самом деле все легко, посмотрите конец тутора на весь код ^_^ Кстати, на создание гуи ушло неделя... |
Re: DF_GUI v0.5
:super:
Видел в действии, молодец! Лучше пока ещё не видел. |
Re: DF_GUI v0.5
Молодец! Не видел в действии но скрины впечатляют!... Будет время потестирую.... А на счет Strict и SuperStrict это плохо... Надеюсь что это действительно исправится в будущем... :)
|
Re: DF_GUI v0.5
Ура! Ура! Ура!
Я сделал, что терь мона использовать гуи с Strict и SuperStrict. И так же исправлено несколько мелких багов. Вот гуи с ехе. http://ifolder.ru/4032009 ЧТо бы вы хотели увидить в следущей версии? |
Re: DF_GUI v0.5
Молодец, Данил! это один из тех людей, который действительно что-то делает на этом форуме, таких мало... И все делает сам а не обращается по каждому поводу на форум, за что ему респект и уважуха. Будет ГУИ вер№1.0 -буду обязательно пользоваться.
|
Re: DF_GUI v0.5
Цитата:
|
Re: DF_GUI v0.5
IGR,
Цитата:
dimanche13, спс =) Но все таки один раз я обратился на форум =))) |
Re: DF_GUI v0.5
Цитата:
Респект Данил. Теперь немножко ещё по гуи. Как понял визуальный редактор будет выдовать код. Имхо не слишком динамично. Предлогаю варриант, сразу скажу не слишком простой, но Очень динамичный. Xml. А именно, ты сможешь сразу окно и его эллементы хранить в 1 xml файле, и при надобности можно хоть блокнотом чтонить подправить. Для визуального редактораб дует удобно грузить, т.к. у Xml древовидная структура, а в ГУИ тоже самое =) Поэтому кто от чего и для чего зависит выдержать будет очень просто. Хм, ну ещё работы не мало, но и сделано прилично ;) Нужны ComboBox - это выплывающие эллементы для выбора. Да и надеюсь ГУИ построенно на системе событий и состояний. Только не вздумай сбивать темпы разработки. :) |
Re: DF_GUI v0.5
У меня есть идея сделать визуальный редакор. Но он будет все эти
DF_GUI.Create_Window (640/2-100,480/2-50,200 , 160, "Main Menu" , "Window1",0,0,0,1,1,2) DF_GUI.Create_Text (10,0,200,200,200, "Preved, Medved." , "Text1", "Window1" ) DF_GUI.Create_Button (10,50,180, 20 ,3, "Exit", "Button1", "Window1" ) Давать не в виде кода, а в виде файла, но не xml. Работать с xml я не умею . =( И так функию загрузки окон. Допустим, файл form1.form . Вначале игры мы загружаем его через функцию и пропускаем бооольшую кучу всех этих DF_GUI.Create . И так далее. Тоже самое, но пропускаем эту кучю. Кста, спс за идею, МоКа. =) |
Re: DF_GUI v0.5
Молодец!:super:
Могу дать модуль MaXML и справку по нему. |
Re: DF_GUI v0.5
Как вариант ещё можно делать отступы.
DF_GUI.Create_Window (640/2-100,480/2-50,200 , 160, "Main Menu" , "Window1",0,0,0,1,1,2) __DF_GUI.Create_Text (10,0,200,200,200, "Preved, Medved." , "Text1", "Window1" ) __DF_GUI.Create_Button (10,50,180, 20 ,3, "Exit", "Button1", "Window1" ) |
Re: DF_GUI v0.5
Igorr, как вариант, я решил вообще без них обойтись =))))))))))
|
Часовой пояс GMT +4, время: 07:07. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot