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

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

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

Ответ
 
Опции темы
Старый 27.08.2007, 15:49   #1
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Стрелка elmax 0.0.6 - тень фреймворка

Застолблю-ка я себе местечко в данной ветке... (:
Выкладываю пока первые наработки, может кто посмотрит-покритикует...

Для правильной работы нужен модифицированный модуль pub.libxml. Инстркция по инсталяции в архиве... (:

Version 0.0.6 (14.09.2007)

Внимание! Относительно прошлых версий изменены имена многий файлов - не копируйте поверх старый версий.

Вырезка из readme.txt:

Что уже умеем?

1. Инициализация из xml-конфига.
2. Менеджер ресурсов с загрузкой из xml.
3. Простенький GUI с загрузкой из xml.
3.1. Окно (CGuiWindow) - контейнер, содержит другие контролы.
3.2. Лейбл (CGuiLabel) - можно указать горизонтальное форматирование текста.
3.3. Кнопка (CGuiButton) - можно указать бэкграунд кнопки из 3 фреймов (нормальное состояние, наведение, нажатие), шрифт, текст надписи, её цвет и альфу.
3.3.1. Возможность указать скрипт, сработающий при нажатии на кнопку.
3.3.1. Возможность указать имя функции скрипта, сработающей при нажатии на кнопку.
3.4. Скролл (CGuiScroll) - можно задавать минимальное и максимальное значение каретки (minValue и maxValue), а так же устанавливать положение самой каретки (value).
3.5. Листбокс (CGuiList) - контейнер, может содержать только элементы, которые будут составлять список. Для таких элементов от CGuiCtrl отнаследован специальный класс CGuiListItem. Устанавливает этим элементам (x=0.0, y)-координаты в соответствии с их положением в листе.
3.5.1. Элемент листа Лэйбл (CGuiListItemLabel) - можно задать шрифт, текст, его цвет и альфу.
3.6. Текстовая кнопка (CGuiTextButton) - можно указать бэкграунд кнопки из 9 фреймов по 3 на состояние (нормальное состояние, наведение, нажатие), шрифт, текст надписи, её цвет и альфу. Серединка кнопки растягивается в зависимости от указанной ширины.
3.6.1. Возможность указать скрипт, сработающий при нажатии на кнопку.
3.6.1. Возможность указать имя функции скрипта, сработающей при нажатии на кнопку.
3.7. Строка ввода (CGuiInput) - в активном состоянии позволяет вводить текст (поддержка русского языка), можно указать бэкграунд из 9 фреймов по 3 на состояние (нормальное состояние, наведение, активное), шрифт, его цвет и альфу.
3.8. Чекбокс (CGuiCheck) - стандартный чекбокс.
3.9. Изображение (CGuiPicture) - загружает и рендерит спрайт.
4. Класс спрайта с поддержкой анимации. Поддерживает вывод отдельных фреймов.
5. Класс шрифта с поддержкой форматирования расположения (верх\низ\лево\право\ценрт) относительно указанных координат.
5.1. Содержит методы для работы с текстом в виде листов TList. TList нужен для быстрой работы с многострочным текстом.
6. Класс цвета с функиями конвертации из Byte в Float и обратно, извлечение RGBA-составляющих из Int.
7. Наметки будущего класса вектора.
8. Система частиц, основанная на отдельных эмиттерах, которые можно легко расширять.
8.1. Стандартный эмиттер.
8.2. Эмиттер, создающий частицы по чёрно-белой маске.
8.3. Эмиттер, колеблющий частицы по горизонтали, создавая эффект вращения в глубину.
9. Система виджетов (CWidget) для создания отдельных элементов проргаммы (меню, геймплей, диалоговые окна и т.д.).
9.1. Управление виджетами через скрипты.
9.2. Возможность добавлять виджет в модальном режиме (обновляется только он).
10. Управление программой через скриптовую систему (Lua).
10.1. Управление базовыми классами.
10.2. Управление виджетами.
10.3. Управление GUI.

Что будем уметь?

1. Эмиттер на скриптах для задания сложного поведения частицам.

Что будет ещё?

1. Гексогональная сетка с возможностью гибкого (у ячейки будет несколько параметров) поиска пути.
2. Универсальная система сохранения\загрузки игры. (в процессе)
2.1. Универсальная система профиля игрока.

Зачем всё это?

Мне нужен удобный инструмент для разработки казуальных игр. Если он ещё кому-то пригодится - можете поделиться со мной своей прибылью! ^__^
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 16:37   #2
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

Забавненько, сейчас правда похвастаться не чем, окна то прозрачны , то нет. XML - оно читает, а надо ли? В чем будет сохраняться система частиц? Универсальная система сохранения\загрузки игры - что это?
http://elmortem.mirgames.ru/ - это ты?
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 16:59   #3
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

Прозрачны не активные окна, это было сделано для теста активности окна. (:
Т.е. если клацнуть по окну, то оно станет активным, а если вне окна - не активным.
XML - очень удобный и наглядный формат хранения данных. Так что определённо надо. Загрузка может немного дольше, но за-то не нужно никакого дополнительного софта для редактирования - блокнотик открыл и подредактировал.

Частицы так же будут в XML по той простой причине, что эммитер имеет крайне небольшое число параметров, так что придумывать новый бинарный формат смысла не имеет. К тому же проще будет портировать систему частиц.
Пока создание редактора частиц не предполагается, всё ручками в блокноте.

Система сохранения и загрузки игры позволит регистрировать "в себе" разные данные и сохранять\загружать их. Не зная всех возможностей Макса я пока детально не думал над этим... Но это точно не будет "волшебной сохранялкой читающей мысли". Просто несколько упростит работу и уменьшит написание кода в дальнейшем.

В общем сейчас занимаюсь GUI и форматированным текстом, а там видно будет.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 17:17   #4
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

ВЫкладывай следующие версии, пощупаем Если действительно будет работать всё то, что ты заплонировал без глюков и тормозов, то это будет просто супер.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 17:27   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: elmax - набросок фреймворка

Насчёт xml согласен с тобой, т.к. это отличный формат хранения информации.

Запустил и Сразу же с первого действия нашёл баг
Значит двигай за край быстро окно, над другим окном, то тоже задвигаеться, т.к. ты у тебя перемещение окна на позицию куда переместить стоит До изменения координат курсора.
Далее, у тебя гуи не динамичны - окошко одним рисуночком, а не из частей гуи эллементов.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 17:47   #6
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

Да, это еще ладно, что два окошка вместе двигаются. У меня вообще вылетало из программы и даже не говорило почему.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 17:48   #7
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: elmax - набросок фреймворка

elmortem, ещё могу посоветовать добавить лог систему, для ведения логов в дубаг моде, а так же динамичный дебаг логгер, в самой игре, где будут графики всякие.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 17:59   #8
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

dimanche13
http://elmortem.mirgames.ru - да, это я...

MoKa
На счёт перемещения окна гляну, хотя для моих целей перемещать окна вообще не нужно, это я уж так, в порыве знакомства с Максом... (:
Собственно поэтому гуи не динамический, для казуалок обычно это просто не нужно. Каждый элемент должен быть неповторим и исключителен. Так что все бэки для окон и кнопочек будут рисоваться целиком. Хотя возможно будет контрол кнопки из 3 частей (лево, тянущаяся серёдка и право)...
debuglog я использую, где нужно. И уже прикрутил лог в файл, так что всё нормально. (:

На счёт вылетов, надо бы трай-кетч использовать, но мне лень, всё-таки это бейсик, а не С++. ^_^
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 18:08   #9
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

Try & Catch тоже есть в BlitzMax. Assert -есть. Вылеты - это самый страшный из грехов. А неожиданные вылеты в самый интересный момент, вообще приводят к раннему выпаданию волос игроков)))
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 18:17   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: elmax - набросок фреймворка

elmortem, насчёт кнопочки лучше не растягивающуюся а зацикленную и последняя отсечённая.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 18:25   #11
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

dimanche13
Знаю, что есть, но мой мозг ещё не свыкся с мыслью, что это "не просто бейсик"... (:
В оригинале вылетов быть не должно. А пока сделаем вид, что это триальным период. ^______^
(Offline)
 
Ответить с цитированием
Старый 28.08.2007, 13:45   #12
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

MoKa
Что-то я не нашёл функции, возволяющей менять uv-координаты текстуры, чтобы сделать отсечение. ):
Так что контрол Скролла пока сделан через DrawImageRect, который растягивает серёдку... В принципе при правильно рисовании серединной части тянуться будет нормально...
Но если подскажешь способ рисования с отсечением - будет круто. (:

Разобрался с перемещением окна, теперь нельзя случайно зацепить несколько штук - только одно, которое начал перемещать изначально.

Для текста пока сделал форматирование по горизонтали и вертикали с учётом переноса строк. Думаю над тем, нужно ли делать раскраску отдельных слов (как в Quake III)...
(Offline)
 
Ответить с цитированием
Старый 28.08.2007, 14:19   #13
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

Вообще-то в любом TImage есть поле Pixmap. Это прямой доступ к байтам картинки и делай с ней что хочешь.
(Offline)
 
Ответить с цитированием
Старый 28.08.2007, 14:22   #14
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

dimanche13
В реалтайме ковыряться с байтами нецелесообразно - скорость не та. Или там какие-то другие байты?
(Offline)
 
Ответить с цитированием
Старый 28.08.2007, 14:25   #15
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: elmax - набросок фреймворка

Глянь функцию: SetViewport
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
набросок сайта jimon Болтовня 4 11.04.2007 00:24


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


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