JaggerDer 90 Опубликовано: 12 ноября, 2014 (изменено) Смысл Написал программку из двух файлов для CC1.6 которая позволяет создавать слои, на которых можно "рисовать".Пока реализовал основной задуманный функционал, позже напишу еще пару плюшек.Что есть:-Независимые слои-Псевдопрозрачность-Базовые функции для операций над слоямиЧто хочу добавить:-Удаление всех пикселов слоя, не задевая вышестоящих слоев.-Выборачная отрисовка пикселов слоев.-Функционал для рисования(линии, боксы и т.п) <частично реализовано>-Возможность заблокировать, скрыть, перемещать пикселы слоя. Описание функций layerobj -Init(anWidth, anHeight, asName, abVis, abLck) - инициализирует объект и позволяет задать начальные параметры, что то вроде конструктора в ООП: -anWidth - ширина матрицы слоя. -anHeight - высота матрицы слоя. -asName - название слоя. -abVis - не используется. -abLck - не используется.-Remove() - деструктор.-SetPixel(anX, anY, asText, anTextColor, anColor) - записывает символ\цвет символа\цвет фона в соотв. матрицы: -anX - ордината точки. -anY - абцисса точки. -asText - символ или строка, в случае со строкой все ее символы принимают цвет и фон первого. -anTextColor - цвет символа. -anColor - цвет фона.-GetParameters() - возвращает основные параметры слоя: <Обновлено> -sName - имя слоя. -nWidth - ширина матрицы слоя. -nHeight - высота матрицы слоя. -nShiftX, nShiftY -Shift(anShiftX, anShiftY) - установка смещения слоя по X и Y соответственно. <Добавлено>-GetPixel(anX, anY) - возвращает информацию о пиксле по координатам anX и anY: -sText - символ. -nTextColor - цвет символа. -nColor - цвет фона.-ClearLayer() - очищает все матрицы слоя. Описание функций layermanager -RegisterLayer(aloLayer) - регестрирует слой в очереди для отрисовки, возвращает его ID.-UnregisteLayer(anID) - удаляет слой из очереди по ID.-DrawLayers() - отрисовывает поочередно все слои.-DrawLayer(aloLayer) - рисует определенный слой.-ShiftLayer(anID, asDir, anStep) - меняет ID слоя, а собственно и очередь прорисовки: -anID - смещаемый слой. -asDir - направление смещения(left и right) -anStep - на сколько ед. сместить слой.-LayerClick(anX, anY) - возвращает название слоя и инф-ию о пикселе по заданным координатам: -sName - ... -sText - ... -nTextColor - ... -nColor - ...-Info() - дебаговая информация.-Ряд пока незадействованных функций. <Удалено/Перемещено> LAPIShell Содержит функции рисования линии и бокса: -DrawLine(anX1, anY1, anX2, anY2, asChar, anCharColor, anColor, aloLayer) <Добавлено> -DrawBox(anX1, anY1, anX2, anY2, asChar, anCharColor, anColor, aloLayer) <Добавлено> FIO Содержит функции для сохранения\загрузки слоя: -SaveToFile(asFilename, aloLayer) <Добавлено> -ReadFromFile(asFilename, aloLayer) <Добавлено> Установка Качаем с pastebin на компьютер файл: http://pastebin.com/Nekd2WRU. Используем с помощью os.loadAPI.Для тех кто зачем-то будет читать мой код:Аргументы функций: a<type>VarNameПеременная: <type>VarNameВременная переменная: _<type>VarName<type> - просто сокаращения: n - number, s - string и т.дВсе это дело нужно было только чтобы не путаться с переменными(было такое). Изменено 20 сентября, 2015 пользователем JaggerDer 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 12 ноября, 2014 Это что-то вроде графического редактора для CC? Можно будет сохранять и загружать готовые рисунки? Есть ли ограничение на размер рисунка и количество слоев? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
JaggerDer Автор темы 90 Опубликовано: 12 ноября, 2014 Это что-то вроде графического редактора для CC? Можно будет сохранять и загружать готовые рисунки? Есть ли ограничение на размер рисунка и количество слоев? Нет, это не графический редактор. Я хотел сделать библиотеку для работы со слоями куда можно записать и откуда можно прочитать информацию о тексте, цвете - нужно было для чего то, т.к. в СС нельзя получить эту инфу, только нарисовать. Размер любого слоя ограничен самим окном СС компьютера, можно сделать меньше, но не больше(вроде можно задать размер при создании слоя). А кол-во слоев вроде неограниченное(ну насколько памяти хватит). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 12 ноября, 2014 Т.е. это что-то вроде Canvas API? Позволяет программе выводить свою графику/текст на нескольких накладывающихся слоях, и контролировать, что и где отображается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
JaggerDer Автор темы 90 Опубликовано: 13 ноября, 2014 Т.е. это что-то вроде Canvas API? Позволяет программе выводить свою графику/текст на нескольких накладывающихся слоях, и контролировать, что и где отображается? Да. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
JaggerDer Автор темы 90 Опубликовано: 30 ноября, 2014 Итак, добавил пару штук в свой API: -Можно сохранять слой в файл или же загружать из файла(буду благодарен если кто подскажет как можно сжимать информацию о пикселах слоев). -Теперь можно сдвигать слои по x, y(не путать со сдвигом по z). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 30 ноября, 2014 Что ты называешь пикселами? В СС вроде нет графики Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
JaggerDer Автор темы 90 Опубликовано: 30 ноября, 2014 Что ты называешь пикселами? В СС вроде нет графики Пикселом я называю символ имеющий цвет и цвет его фона. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 30 ноября, 2014 т.е. пиксель это символ + байт цвета, а экран состоит из 19х51 пикселей. Не думаю, что при таких объемах сжатие даст результат, но можешь почитать тему про голографический проектор. Я там алгоритм сжатия предлагал, может и тебе подойдет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах