Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизВывод графического текста Как лучше и правильнее? Найти похожие ветки
← →
Borissv © (2004-05-13 11:30) [0]Использую DelphiX...
Задача:
- Вывод графического (в виде картинки) текста...
1. Забомбил небольшую процедуру которая переводит строку текста в картинку
с этим текстом:
Procedure DIBFont(Text:String; var ADIB: TDIB);
2. есть элемент в DXImageList, допустим с названием "dibText"
его Picture при старте программы - пустое...
далее в run-time"е я Assign"ую полученую картинку, но спрайт(c картинкой dibText) который я создаю после этого всё равно не имеет картинки и я знаю почему (не буду расписывать). Значит нужно искать другое решение...
В общем как вообще лучше и правильнее выводить графический текст?
Для каждой буквы свой спрайт чтоли делать? По моему это тоже не выход...
Или неужели прийдётся выводить через Canvas...
Подскажите решение плз...
← →
Borissv © (2004-05-13 12:19) [1]Закрыто!
Вопрос снят, я нашёл решение....
← →
zeqfreed © (2004-05-13 18:18) [2]Хоть бы поделился :)
← →
Borissv © (2004-05-13 19:21) [3]например:
Procedure DIBFont(Text:String; var ADIB: TDIB);
var
TBMPFont: TBitmap;
TextLen,
i,
X,
FontSize: Integer;
Begin
FontSize:=16;
TextLen:= Length(Text);
Text:= UpperCase(Text);
TBMPFont:= TBitmap.Create;
TBMPFont.LoadFromFile("Font.bmp");
ADIB.SetSize(FontSize*TextLen,FontSize,24);
for i:= 1 To TextLen Do
Begin
X:= (Ord(Text[i])-32)*FontSize;
BitBlt(ADIB.Canvas.Handle,(i-1)*FontSize,0,16,16,TBMPFont.Canvas.Handle,X,0,SRCCOPY);
End;
TBMPFont.Free;
End;
Procedure SetText(var PCI:TPictureCollectionItem;Text:String);
var
FDIB: TDIB;
begin
FDIB:= TDIB.Create;
DIBFont(Text,FDIB);
PCI.Picture.Assign(FDIB);
FDIB.Free;
PCI.Restore;
End;
что то вроде этого...
Можно ещё и вообще без спрайтов, используя второй DXDrawSurface, но пока ещё не разбирался....
В MirGames есть примеры с описанием
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c