Font mitliefern - muss der immer ins Windows-Font-Dir?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Font mitliefern - muss der immer ins Windows-Font-Dir?

Beitrag 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?
PB 6.21 | Win 11
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

ts-soft hat hier eine lösung vorgeschlagen, die zu funktionieren scheinte
http://www.purebasic.fr/german/viewtopi ... n&start=10
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag 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?
PB 6.21 | Win 11
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag 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
my pb stuff..
Bild..jedenfalls war das mal so.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag 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...
PB 6.21 | Win 11
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten