НАВИГАЦИЯ
Главная
Учебник
Файлы
Новости
Примеры
Ссылки
Сообщения
Форум
От создателя







Собственные графические шрифты.

Часто хочется создать свой шрифт в игре. Например, чтобы в нём были разноцветные буквы, эффект свечения и многие другие навороты. Это сделать несложно. Для этого понадобится любой графический редактор (PhotoShop, Corel и даже Paint).

I) Создаём своё изображение с набором букв. Например, такое:
Причем, буквы желательео должны иметь одинаковый размер по ширине и высоте. Т.е. изображение у нас будет анимационным. Буквы должны располагаться в порядке ASCII кода. Первый символ должен начинаться с пробела (№ 32 в ASCII коде).

II) После того, как создали изображение, можно приступать к разработке программы.
1. Создаим функцию MyImageText(fontimg%,strng$,stp%,X%,Y%)
Параметры функции: fontimg% - указатель изображения с буквами, strng$ - текст, stp% - смещение букв в пикселах, X%,Y% - координаты текста.
Полностью алгоритм текста:

Function MyImageText(fontimg%,strng$,stp%,X%,Y%)
For i=1 To Len(strng)
;цикл прохода по каждому символу
a$=Mid(strng$,i,1) ;получаем текущий символ строки
b%=Asc(a$) ;и его ASCII код

If b>32 Then DrawImage fontimg%,X+px,y,b-32 ;выводим символ
px=px+stp% ;изменяем позицию
Next
End Function

Так для чего нам нужно было размещать в изображении символы в порядке ASCII кода? Это для того, чтобы не пришлось в функции ставить дополнительные проверки условий.

Применим нашу функцию:
Graphics 800,600
SetBuffer BackBuffer()
fontimg=LoadAnimImage("font.png",8,14,0,234)
Repeat
MyImageText(fontimg,"Вот, что у меня получилось!!!",8,4,4)
Flip
Cls
Until KeyHit(1)
End

Function MyImageText(fontimg%,strng$,stp%,X%,Y%)
For i=1 To Len(strng)
a$=Mid(strng$,i,1)
b%=Asc(a$)
If b>32 Then
DrawImage fontimg%,X+px,y,b-32
px=px+stp%
Next
End Function
Выйдет следующий текст:
Можете скачать пример:Font.zip(38,1 кб)



X