Seite 1 von 1
Font mitliefern - muss der immer ins Windows-Font-Dir?
Verfasst: 08.08.2006 18:42
von Delle
Hallo,
in einem Spiel soll ein eigener Font verwendet werden...
Sehe ich das richtig, dass ich mittels LoadFont() nur installierte
Fonts im Windows-Fonts-Ordner laden kann und nicht z.B. einen
Font der im gleichen Ordner wie das Spiel liegt?
Bleibt also nur übrig den Font vor Spielstart ins Font-Verzeichnis
zu kopieren oder eine Bitmap-Text-Variante zu schreiben?
Verfasst: 08.08.2006 18:49
von #NULL
ts-soft hat hier eine lösung vorgeschlagen, die zu funktionieren scheinte
http://www.purebasic.fr/german/viewtopi ... n&start=10
Verfasst: 08.08.2006 18:59
von Delle
Demzufolge so anwenden?
Code: Alles auswählen
AddFont("Fontname.ttf")
LoadFont(0,"Fontname",6)
RemoveFont("Fontname.ttf")
Also Add/Remove immer mit .ttf?
Verfasst: 08.08.2006 19:25
von #NULL
ja, wenn die procedures vorher deklariert wurden, oder halt so
Code: Alles auswählen
AddFontResource_(FontFileName.s)
SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE, #NUL, #NUL)
LoadFont(0,"Fontname",6)
RemoveFontResource_(FontFileName.s)
wobei z.b.
FontFileName.s="Fontname.ttf"
sein könnte
Verfasst: 08.08.2006 19:36
von Kaeru Gaman
> eine Bitmap-Text-Variante zu schreiben
ist eine durchaus zu empfehlende lösung, da du volle farbanzahl im selben buchstaben benutzen kannst.
eine .ttf wird immer einfarbig sein, außer du trickst rum.
(z.b. den text negativ in ein image oder sprite schreiben,
nen farbverlauf mit Line() und die textmaske drüberziehen)
aber mit ner bitmap font hast du halt wirklich viel mehr möglichkeiten.
Verfasst: 08.08.2006 19:56
von Delle
In diesem Falle reichen mir einfarbige Fonts aus, allerdings würde man sich mit der Bitmap-Variante auch noch einiges Bytes sparen und die obigen Proceduren...
BitmapFontBMP = 1 KB, Fontfile = 50 KB
Sprites sind sowieso schneller als DrawText usw.
Und in die Bitmap brauch ich nur die Buchstaben einbauen, die ich wirklich benötige...
Verfasst: 08.08.2006 19:57
von AND51
Oder man kann sogar benutezrdefinierte Sonderzeichen einfügen. Wenn es in dem SPiel z. B. Geld gibt, und die Geldeinheit mit einem anderen Zeichen als € $ oder Yen dargestellt werden soll.
Ich erinnere an die Schriftart(en) Webdings und Symbol.
Verfasst: 09.08.2006 18:16
von Kaeru Gaman
> Und in die Bitmap brauch ich nur die Buchstaben einbauen, die ich wirklich benötige...
yup, ganz genau.
> Oder man kann sogar benutezrdefinierte Sonderzeichen einfügen.
das kommt noch dazu.
außerdem kannst du auf demselben screen verschieden große / verschieden
geformte Texte darstellen, und greifst stets nur auf den Sprite speicher zu.
du brauchst nicht zwischen 3 verschiedenen schriftarten umschalten,
vorher sicherstellen, dass die vorhanden sind, und dann auch noch start/stop-drawing...
> Sprites sind sowieso schneller als DrawText usw.
genau.
PS:
und du kannst sie selber erstellen und brauchst niemals copyright bedenken haben.