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
Сейчас нет на сайте
| Проект закрыт. Причина - слишком высокая ресурсопотребность итоговой программы. Кому нужны исходники последней версии (не без багов, конечно), держите. Тему скорее всего тоже нужно закрыть.
|
|
| |