Fonts
Blitz3D Forums/Blitz3D Beginners Area/Fonts
| ||
Hello, new to fonts and have a few questions. 1) I have Windows XP and looking in Control Panel -> fonts I find about 70 fonts. Can I use any of these in Blitz without having to have it in my programs directory? 2) If I download a font from the internet should I put it in the same directory as my program, so that it is available to all people running my prog? 3) Does blitz look in the programs directory first? 4) The fonts look a bit blocky when viewed large, but the same font opened in windows looks much smoother. Is there a way to get 'smooth' fonts in blitz? Any help appreciated Marg |
| ||
Using fonts installed on the system does not require the font be in the program's directory, but to ensure you end-user will see the font correctly you should have the font along with your program. That said however bitmap fonts much faster than using the Text command, plus the fonts can have all sorts of cool visual effects and antialiasing in 3D mode. There are a few free font systems to play with (look in GuiLibs in the Toolbox, plus look in the Code Archives) or purchase FONText; I have it and it works great. |
| ||
Using fonts installed on the system does not require the font be in the program's directory, --- I use WinXP and a lot of fonts (even standard ones) dont work even though they are installed. As a precaution, I habitually copy every font I may use into my game folder. |
| ||
Here is a good piece of code for AA fonts, don't mind what it's drawing on the screen.Const fsize=20 Const imgsize=24 Const offset=2 Const fontname$="Arial" Const aascale=8 Const fcolorr=255 Const fcolorg=255 Const fcolorb=255 Const bcolorr=0 Const bcolorg=0 Const bcolorb=0 Graphics 640,480,32,1 font=LoadFont(fontname,fsize*aascale) outimg=CreateImage(imgsize*16,imgsize*16) midimg=CreateImage(imgsize*aascale,imgsize*aascale) ClsColor 0,0,0 Color 0,0,255 SetFont font outdat=WriteFile("charlen.dat") For a=0 To 255 SetBuffer ImageBuffer(midimg) Cls Text offset*aascale,offset*aascale,Chr(a) For d=0 To imgsize-1 For e=0 To imgsize-1 colval=256*256*256*aascale*aascale For b=0 To aascale-1 For c=0 To aascale-1 colval=colval+ReadPixel(d*aascale+b,e*aascale+c) Next Next colval=colval/(aascale*aascale) c2=256-colval WritePixel d+(a Mod 16)*imgsize,e+(a/16)*imgsize,((fcolorr*colval/256)+(bcolorr*c2/256))*256*256+((fcolorg*colval/256)+(bcolorg*c2/256))*256+((fcolorb*colval/256)+(bcolorb*c2/256)),ImageBuffer(outimg) Next Next WriteByte outdat,Len(Chr(a))/aascale SetBuffer FrontBuffer() Print a If KeyHit(1) Then End Next SaveImage outimg,"font.bmp" |
| ||
WriteByte outdat,Len(Chr(a)/aascale) Error ... operator cannot be applied to strings,, |
| ||
Sorry, misplaced bracket. That file contain the width of each character, usefull when you print the text. |