Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты на BlitzMax

Ответ
 
Опции темы
Старый 07.11.2007, 00:09   #1
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Смущение 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)
DrapNDrop - можно ли таскать окно. таскается всегда за верхнии 25 пикселей.

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$ )
image - картинка - полоса
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$ )
image - сама картинка кнопки.
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
Include "GUI.bmx"

DF_GUI.Create_Window (640/2-100,480/2-50,200 , 160, "Main Menu" , "Window1",0,0,0,1,1,2)

While Not KeyDown (Key_Escape)
Cls
Flip
Wend
Добавим в цикл: GUI_Update()
Теперь у нас будет работать само окно.
Но так ведь не интерестно? добавим надпись:

DF_GUI.Create_Text (10,0,200,200,200, "Preved, Medved." , "Text1", "Window1" )
Это у нас создаем надпись на нашем окне. Отсчет x и y видется от начал границ окна.

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
Include "GUI.bmx"

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" )

While Not KeyDown (Key_Escape)
Cls
GUI_Update()
ChangeText ("Window1", "Button1" , GetText ("Window1", "Text1"))
If GUI_ButtonDown ("Window1", "Button1") Then End  
Flip
Wend
Кстати, выражаю благодарность МоКе и dimanche13 за помощь. =)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (26.07.2013)
Старый 07.11.2007, 00:11   #2
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: DF_GUI v0.5

Кстати, пример, к сожалению , рабоать не будет. Надо удалить первую строчку - будет норм.
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 00:24   #3
magpro
Разработчик
 
Аватар для magpro
 
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений
(для 7 пользователей)
Re: DF_GUI v0.5

Всё это очень хорошо теперь для Блитс 3д сделай)
__________________
Никто не запомнит тебя за твои мысли...
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 00:26   #4
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: DF_GUI v0.5

magpro, все это хорошо, но для blitz3d есть МоКина система : mGUI .

Хе, слишком большой тутор. Люди просто бояццо видимо все это прочитать и понять *лол*

На самом деле все легко, посмотрите конец тутора на весь код ^_^
Кстати, на создание гуи ушло неделя...
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 00:58   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Re: DF_GUI v0.5


Видел в действии, молодец!
Лучше пока ещё не видел.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 01:02   #6
devolonter
Разработчик
 
Аватар для devolonter
 
Регистрация: 17.01.2007
Сообщений: 409
Написано 114 полезных сообщений
(для 281 пользователей)
Re: DF_GUI v0.5

Молодец! Не видел в действии но скрины впечатляют!... Будет время потестирую.... А на счет Strict и SuperStrict это плохо... Надеюсь что это действительно исправится в будущем...
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 03:29   #7
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: DF_GUI v0.5

Ура! Ура! Ура!
Я сделал, что терь мона использовать гуи с Strict и SuperStrict. И так же исправлено несколько мелких багов.
Вот гуи с ехе.
http://ifolder.ru/4032009

ЧТо бы вы хотели увидить в следущей версии?
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 12:12   #8
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: DF_GUI v0.5

Молодец, Данил! это один из тех людей, который действительно что-то делает на этом форуме, таких мало... И все делает сам а не обращается по каждому поводу на форум, за что ему респект и уважуха. Будет ГУИ вер№1.0 -буду обязательно пользоваться.
__________________
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 12:15   #9
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: DF_GUI v0.5

ЧТо бы вы хотели увидить в следущей версии?
хочу видеть следующую версия для blitz3D !!
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 12:20   #10
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: DF_GUI v0.5

IGR,

magpro, все это хорошо, но для blitz3d есть МоКина система : mGUI .



dimanche13, спс =)
Но все таки один раз я обратился на форум =)))
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 12:30   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: DF_GUI v0.5

Молодец, Данил! это один из тех людей, который действительно что-то делает на этом форуме, таких мало... И все делает сам а не обращается по каждому поводу на форум, за что ему респект и уважуха.
Обсолютно согласен.
Респект Данил.

Теперь немножко ещё по гуи. Как понял визуальный редактор будет выдовать код. Имхо не слишком динамично. Предлогаю варриант, сразу скажу не слишком простой, но Очень динамичный.
Xml. А именно, ты сможешь сразу окно и его эллементы хранить в 1 xml файле, и при надобности можно хоть блокнотом чтонить подправить. Для визуального редактораб дует удобно грузить, т.к. у Xml древовидная структура, а в ГУИ тоже самое =) Поэтому кто от чего и для чего зависит выдержать будет очень просто.
Хм, ну ещё работы не мало, но и сделано прилично
Нужны ComboBox - это выплывающие эллементы для выбора.
Да и надеюсь ГУИ построенно на системе событий и состояний.

Только не вздумай сбивать темпы разработки.
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 12:39   #12
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
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 . И так далее. Тоже самое, но пропускаем эту кучю.
Кста, спс за идею, МоКа. =)
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 16:22   #13
Igorr
Нуждающийся
 
Регистрация: 17.05.2006
Сообщений: 72
Написано 2 полезных сообщений
(для 4 пользователей)
Re: DF_GUI v0.5

Молодец!
Могу дать модуль MaXML и справку по нему.
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 16:25   #14
Igorr
Нуждающийся
 
Регистрация: 17.05.2006
Сообщений: 72
Написано 2 полезных сообщений
(для 4 пользователей)
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" )
(Offline)
 
Ответить с цитированием
Старый 07.11.2007, 16:37   #15
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: DF_GUI v0.5

Igorr, как вариант, я решил вообще без них обойтись =))))))))))
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:39.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com