| DBPro OOP Template (Проект закрыт) | 
|  | 
| 
| CrazyDazeGrout | Дата: Понедельник, 29 Августа 2011, 13:13 | Сообщение # 1 |  | Spirit Of Beginning Сейчас нет на сайте | Здравствуйте! Наверное не для кого не секрет, что создание игры с большим количеством различных объектов в процедурных языках достаточно сложное, так как приходится отслеживать каждый объект в отдельности. И Dark Basic Professional не является исключением. Поэтому мной за время отдыха была создана идея встроенными средствами превратить его в объектно-ориентированнй язык. После того как идея получила детальное изложение, было решено перевести её в шаблон кода, основываясь на котором будут создаваться приложения.
 Чтобы не быть голословным, вот список возможностей на текущий момент:
 - Создание объектов;
 - Обращение к параметрам объекта по именам;
 - Логическое изменение параметров объектов(указатель класса.имя объекта.параметр = значение);
 - Выборочное обновление нужного объекта;
 - Выборочное уничтожение нужного объекта.
 
 Список существующих классов и их параметров(пока только один класс):
 dxsClass - (Direct X Sprites) - это не стандартные спрайты DBPro, а сторонние, более быстрые и более настраиваемые, хоть и использующие ту же технологию. Указатель класса (на данный момент) - obj.
 - id - реальный номер спрайта в памяти компьютера;
 - x - позиция спрайта по оси X;
 - y - позиция спрайта по оси Y;
 - width - ширина спрайта;
 - height - высота спрайта;
 - alpha - значение альфа-канала спрайта;
 - angle - угол поворота спрайта;
 - image - используемое спрайтом изображение.
 
 Список существующих команд:
 имя объекта = create("параметры") - создает новый объект. В качестве параметров к классу dxsClass используется путь к изображению;
 update(имя объекта) - обновляет и отрисовывает объект согласно параметрам;
 release(имя объекта) - освобождает объект и его ресурсы из памяти;
 
 Пример присвоения параметра: obj(mySuperSprite).width = 200
 
 Видео шаблона в действии:
 
 
 
 Для тех кто не разглядел код на видео:
 
   
 Публичное представление всего кода в настоящее время не предполагается!
 
 Пишите предложения, пожелания, критику... Буду рад всему.
 
 
   
 
 Сообщение отредактировал CrazyDazeGrout - Суббота, 03 Сентября 2011, 15:22 |  |  |  |  | 
| 
| AGENTX001 | Дата: Понедельник, 29 Августа 2011, 14:26 | Сообщение # 2 |  |   почётный гцупер Сейчас нет на сайте | хех, всегда дарк нравился)) продолжай!) а ешё вопросик - ты для 3д графы бушь такое делать? ps возможно не в тему, но огромный недостаток ДБ - отсутствие мап эдитора, можит сделаешь?;)
 |  |  |  |  | 
| 
| CrazyDazeGrout | Дата: Понедельник, 29 Августа 2011, 14:31 | Сообщение # 3 |  | Spirit Of Beginning Сейчас нет на сайте | Для 3д-графики такое сделать не проблема, метод один и тот же. Сейчас в приоритете стоит сделать глобальное обновление всех объектов по классам, включая исключение освобожденных объектов (с этим немного сложнее). Сейчас делаю класс для текста (чтобы один раз указать параметры и не менять их каждый раз при новой строке). 
 
 
   |  |  |  |  | 
| 
| CrazyDazeGrout | Дата: Пятница, 02 Сентября 2011, 19:21 | Сообщение # 4 |  | Spirit Of Beginning Сейчас нет на сайте | Небольшое обновление - добавлен класс label(указатель на него - lbl). lblClass - (Label) - класс для создания текстовых надписей.. Указатель класса - lbl.
 - line - строка, используемая лэйблом;
 - x - позиция лэйбла по оси X;
 - y - позиция лэйбла по оси Y;
 - color - цвет лэйбла;
 - style - стиль лэйбла. Возможные: 1(нормальное начертание), 2(курсивное), 3(жирное) и 4(курсивно-жирное);
 - size - размер лэйбла.
 
 Указатель на dxsClass изменен на dxs(логично, не так ли?).
 
 Также забыл добавить, что создание объектов теперь осуществляется таким образом:
 имя объекта = create("указатель класса::параметры")
 
 
   
 
 Сообщение отредактировал CrazyDazeGrout - Суббота, 03 Сентября 2011, 15:17 |  |  |  |  | 
| 
| CrazyDazeGrout | Дата: Суббота, 03 Сентября 2011, 15:17 | Сообщение # 5 |  | Spirit Of Beginning Сейчас нет на сайте | Проект закрыт. Причина - слишком высокая ресурсопотребность итоговой программы. Кому нужны исходники последней версии (не без багов, конечно), держите. Тему скорее всего тоже нужно закрыть.
 
 
   |  |  |  |  |