Tutorial
Schriftarten unter FreeBASIC
von Volta | Seite 2 von 7 |
Einen FBFont gezielt auswählen
Über einen Trick lässt sich ein bestimmter FBFont in jedem Screen-Format einstellen.
Die Anweisung WIDTH legt nicht nur in einem Konsolenfenster die Anzahl Spalten und Zeilen fest, sondern kann dies auch in jedem Grafikfenster.
Damit dabei ein FBFont meiner Wahl eingestellt wird, berechne ich wie viel Spalten und Zeilen in dem eingestellten Grafikfenster passen.
Zu kompliziert, nein gar nicht!
Wenn ich ein 300 x 200 Pixel Fenster habe, und möchte mit dem FBFont_16 schreiben:
ScreenRes 300, 200, 32
'Width (Fensterbreite \ Zeichenbreite), (Fensterhöhe \ Zeichenhöhe)
Width 300\8, 200\16
Print "Mein FBFont_16"
Dafür habe ich eine kleine Funktion geschrieben:
Function set_fbfont (ByVal x As Integer) As Integer
Dim As Integer breit, hoch
ScreenInfo breit, hoch
Select Case x
Case 8, 14, 16 'nur 8, 14 oder 16 funktioniert richtig
Width breit\8, hoch\x ' hier wird auto. Cls ausgeführt
Case Else
Return 0 'etwas lief schief
End Select
Return 1 'Font erfolgreich gesetzt
End Function
Screen 20, 32
set_fbfont(14)
Print "Mein FBFont_14"
Draw String (20*8, 15*14),"Schrifttyp 8x14 Font (Draw String)",&Hff0000
sleep
Einen Haken hat dieser Trick, die Anweisung WIDTH führt einen CLS (Bildschirm löschen) aus.
D.h. führt man einen Fontwechsel durch wird der vorher ausgegebene Text / Grafik gelöscht.
Hier noch eine Funktion (fonthoehe) die die eingestelte Fonthöhe ermittelt:
Function fonthoehe AS Integer
Dim As Integer h
ScreenInfo h
Select Case h\HiWord(Width)
Case Is < 8 : Return 0
Case 8 To 13 :Return 8
Case 14, 15 : Return 14
Case Is > 15 :Return 16
End Select
End Function
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|