Code archives/Graphics/Bitmap font class, for use with Bitmap Font Builder
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| For use with Max2D and the Bitmap Font Builder tool (Found here: http://www.lmnopc.com/bitmapfontbuilder/) | |||||
' Bitmap font class by Odin Jensen (www.furi.dk)
' Free to use as you please :)
' Bitmap font class
Type BitmapFont
' Actual image used in font
Field Image:TImage
' Font offsets
Field Offsets:Int[256]
' Load font
Method Load(URL:Object, Width:Int, Height:Int, MaxChars:Int)
' Load image
Image = LoadAnimImage(URL, Width, Height, 0, MaxChars)
' Create new file name
Local OffsetFileName:String = URL.toString()
OffsetFileName = OffsetFileName[0..OffsetFileName.Length -4] + ".ini"
' Load image offsets
Local File:TStream = OpenStream(OffsetFileName)
' Read offsets
Local CurOffset = 0
Local Temp:String
ReadLine(File)
While Not Eof(File)
' Read current line
Temp = ReadLine(File)
' Split it
Temp = Temp[Temp.Find("=")+1..Temp.Length]
' Add to list
Offsets[CurOffset] = Temp.ToInt()
CurOffset = CurOffset + 1
Wend
' Close stream
CloseStream(File)
EndMethod
' Draw font
Method Draw(X:Int, Y:Int, Text:String)
' Store X locally so we can safely modify
Local tx = X
' Loop through it
For Local i:Int= 0 To Text.length-1
DrawImage(Image, tx, Y, Text[i])
tx = tx + Offsets[Text[i]]
Next
EndMethod
' Get length of string
Method GetLength:Int(Text:String)
Local Size:Int = 0;
' Loop through it
For Local i:Int= 0 To Text.length-1
size = Size + Offsets[Text[i]]
Next
Return Size
EndMethod
' Get image for manipulation
Method GetImage:TImage()
Return Image
EndMethod
EndType |
Comments
None.
Code Archives Forum