Общество изобретателей велосипедов
GameDev.ru / Сообщества / Вело-изобретатели / Форум / Текста прорисовка в SR2D_Sprite напрямую быстро и разнообразно

Текста прорисовка в SR2D_Sprite напрямую быстро и разнообразно

NeirapikПользовательwww9 сен. 201819:17#0
dll-ка рисующая текст подготовленым шрифтом сразу в спрайт
для vb6 один модуль modSR2DPrint    и 2 класса SR2D_Font0 и SR2D_Font1
SR2D_Font1 содержит один шрифт с одним размером (набор рисунков символов)
SR2D_Font0 содержит коллекцию SR2D_Font1 с возможностью выбора по заданному FontSize подходящего SR2D_Font1 и также возможность сохранять коллекцию в файл и читать
modSR2DPrint содержит Type ... End Type и подпрограмму вывода текста и подпрограммы настройки способа вывода (цвета, прозрачность, рамку, заливку, наличие или отсутствие ограниченного окна внутри спрайта, центровки по вертикали и горизонтали и т.д.

Правка: 9 сен. 2018 19:24

NeirapikПользовательwww9 сен. 201819:35#1
первая форма
Print2d Form1 | Текста прорисовка в SR2D_Sprite напрямую быстро и разнообразно

первая форма с прозрачным ClearBuffer_Alpha на заданную область
ClearBuffer_Alpha на Form1 | Текста прорисовка в SR2D_Sprite напрямую быстро и разнообразно

NeirapikПользовательwww9 сен. 201819:36#2
и вторая форма Form2 для испытаний и настройки текста
Print2d Form2 | Текста прорисовка в SR2D_Sprite напрямую быстро и разнообразно
NeirapikПользовательwww9 сен. 201821:40#3
текст можно двигать мышкой левой кнопкой
архив Print2D версия 2.2 отключена оценка размера в dll

убрал мерцание при поднятии вверх и растяжение закраски фона под символом (режим: общий фон не красится(FonClearBox=0), но фон под каждым символом персонально красится (FonClearSim=1))
архив Print2D v2.3.rar убрано мерцание на границе
Print2D v2.4.rar добавлена реакция на пр кн мыши по окну текста

Правка: 10 сен. 2018 21:12

MikleМодераторwww10 сен. 201820:16#4
Кажется, баг: бордер обрезает символы, но не фоновую заливку.
NeirapikПользовательwww10 сен. 201821:37#5
проверил в 2.4 ничего нету - возможно убрал - много сегодня дорабатывал границы выше написано про растяжение фона от символа
а по клику правой кнопкой сделал имитацию нажатия кнопки (вкл режим кнопки и отмено фонового рисунка)
а баги с фоном и мерцанием на границе ранее не замечал так как не было нормальной тестилки а целью было доработать и совместить свойства
11-09-2018 проверил варианты ещё раз (запускал проект из редактора а не .EXE файл) не одного визуального бага не заметил - откомпилирую и выложу
Print2D v2.5.rar откомпилировал Проект1.exe файл
упс заметил - щас поправлю
Print2D v2.7 порезал баги с растяжкой и исчезновением (1 остался)
остался мелкий баг при центровке по центру вертикально если плавно сужать границы верхняя строка исчезает на 3 пикселя раньше чем можно было бы
14-09-2018 справку с примерами на выходных только смогу
17-09-2018 а вот и выходной

Правка: 17 сен. 2018 6:45

NeirapikПользовательwww17 сен. 201821:24#6
вот пока неполная справка (прокоментировал что успел в проге и скопировал в текст файл)
HELP справка по Print2D

и прога с этими коментариями Print2D v2.8 со справкой (неполной пока)

Правка: 17 сен. 2018 21:24

MikleМодераторwww17 сен. 201822:43#7
Включение-выключение Border сдвигают строки вправо-вниз на пиксель, но не всегда и не все строки. С фоновой заливкой теперь всё нормально.
NeirapikПользовательwww18 сен. 201820:20#8
да вкл бордера сдвигают текст на 1 пиксель так как бордер рисуется в границах окна и ранее там где был бордер было место для символов но с появлением рамки текст ограничивается на 1 пиксель со всех сторон чтобы не затереть бордер и ограничение текста слева и сверху на пиксель по сути сдвигают начало рисования на пиксель которы теперь занят бордеромм (толщина бордера 1 пиксель)
и ещё дополнительно при включении опции Bordert3dDown текст сдвигается дополнительно на 1 пиксель вправо и вниз - это сделано для визуального эфекта нажатия кнопки так как при внешнем виде вдавливания поверхности текст не вдавливается и возникает эфект что текст всплыл чуть верх что полностью уничтожает визуальный эффект вдавливания кнопки
для справки если ColorBord1=белый и ColorBord2=чёрный то на сером фоне при Bordert=1 и Bordert3d=1 Bordert3dDown=0 возникает вид стандартной кнопки и если Bordert3dDown переключить из 0 в 1 (что меняет цвета местами) вид кнопки становится "нажатым" 

Правка: 18 сен. 2018 20:30

MikleМодераторwww18 сен. 201820:26#9
Neirapik
> да вкл бордера сдвигают текст на 1 пиксель так как бордер рисуется в границах окна
Это понятно, но я писал: "но не всегда и не все строки". Я включаю-выключаю бордюр - некоторые строки не сдвигаются вправо, только вниз. Меняю содержимое строк - меняется поведение, но закономерности я не нашёл.
NeirapikПользовательwww18 сен. 201820:32#10
но тут может быть просто - если центровка включена по центру то текст не сдвигается - уменьшается свободное пространство вокруг строки (или срезается часть строки) а сама строка остаётся по центру
соответственно для горизонтальной и вертикальной центровки если горизонтальная по центру а вертикальная по верху или никак то вертикальный старт строки смещается а горизонтальный нет и т.д. и т.п.  - коротко говоря привязка положения строки (строк) может быть к краям, а может быть и к центру - смотря что выбрано

Правка: 18 сен. 2018 20:38

NeirapikПользовательwww18 сен. 201820:42#11
и да расчёт центра идёт по целочисленному и округление при делении может давать погрешность в один пиксель для строк разной длины при изменении свободного места - попробую вещественные числа
хотя мне кажется полностью избежать взаимный сдвиг строк на 1 пиксель туда сюда вокруг оптимального положения при изменении размера по горизонтали никак не избежать ведь положение на экране идёт в реально существующих и неделимых пикселях что всё равно требует округления которое при разнице в 0.1 пикселя может дать целый пиксель (выбирать то приходиться между пикселями а не их частями)
и кстати такой же эффект однопиксельного блуждания строк относительного друг друга можно увидеть при плавном изменении горизонтального размера окна текста.
- и повторюсь: размер окна можно плавно менять стрелками на клавиатуре попиксельно поставив курсор в  числовой текст размера окна (в левом верхнем углу Form2 два белых текстовых окошка друг за другом)
окошки ввода размера  текстового окна | Текста прорисовка в SR2D_Sprite напрямую быстро и разнообразно

пардон был неправ - сделал расчёт на числах с запятой вместо целочисленных с округлением результата к ближайшему целому - и хм - блуждания исчезли (мдааа старею)
Print2D v2.9 убран однопиксельный сдвиг по горизонтали

также перевёл на вещественные числа и расчёт положения по вертикали
Print2D v3.0 вертикаль тоже теперь плавно и без раннего исчезновения

проявился баг растяжки фона при плавном опускании окна за низ спрайта (из за особености  SetLockRect (которую раньше не замечал) в нём нижняя и правая граница пропускает пиксели а верхняя и левая нет то есть верх и лево по принципу ">",    а низ и право  "=>")
Print2D v3.1 убран баг растяжки фоновой заливки 

Правка: 21 сен. 2018 22:02

NeirapikПользовательwww13 ноя. 201821:08#12
извиняюсь что долго отсутствую - смена вертикали власти на работе и нет слов пока для форума (одни лишь выражения не имеющие отношение к этой теме)

/ Форум / Общество изобретателей велосипедов / SR2D - софтовый 2D движок

2001—2018 © GameDev.ru — Разработка игр