Gamestudio Links
Zorro Links
Newest Posts
folder management functions
by VoroneTZ. 04/17/24 06:52
lookback setting performance issue
by 7th_zorro. 04/16/24 03:08
zorro 64bit command line support
by 7th_zorro. 04/15/24 09:36
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:48
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:46
LPDIRECT3DCUBETEXTUR
E9

by Ayumi. 04/12/24 11:00
Sam Foster Sound | Experienced Game Composer for Hire
by titanicpiano14. 04/11/24 14:56
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (Quad, AndrewAMD), 410 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Newest Members
11honza11, ccorrea, sakolin, rajesh7827, juergen_wue
19045 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
[gelöst] ein Truetype wie ein Bitmap Font laden? #474442
10/15/18 19:46
10/15/18 19:46
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
Man kann ja Fonts' aus Bitmaps laden
Code:
FONT* standard_font = "st_font.pcx";


Kann man auch ein Truetype font(.ttf) auf so eine Weise laden? so das es dann mit einem "FONT* font_name" nutzbar ist?

oder kann man ttf nur installieren?

lg tom laugh

Last edited by tagimbul; 10/16/18 13:00.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: ein Truetype wie ein Bitmap Font laden? [Re: tagimbul] #474445
10/16/18 07:06
10/16/18 07:06
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Klar, das geht:

FONT* name = "fontname#size(style)";
FONT* arial_font = "Arial#20b"; // truetype font, 20 point bold characters
http://www.conitec.net/beta/afil-font.htm

Wenn es sich bei dem Font nicht um einen Standard TTFont handelt, der auf allen Maschinen vertreten ist, musst du den per AddFontResource hinzufügen und vorm Beenden des Spiels mit RemoveFontResource wieder entfernen.

Bedenke, dass FONTs dann per font_create (oder wie es heißt) erstellt werden müssen, da der FONT wohlmöglich noch nicht vor AddFontResource auf der Maschine existiert.
Also:

FONT* my_font = NULL;
void init_fonts()
{
addFont(...)
my_font = font_create(...);
my_text.font = my_font;
}

Dann hat natürlich Code wie folgender
TEXT *my_text = { font = my_font; };
keinen Effekt, da my_font bei Spielstart noch ungültig ist.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: ein Truetype wie ein Bitmap Font laden? [Re: Superku] #474450
10/16/18 12:15
10/16/18 12:15
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
dankeschön laugh

was muss ich includen für die add funktion?
Wingdi.h finde ich nicht

edit:
ahh "Windows.h" laugh

Last edited by tagimbul; 10/16/18 12:26.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: ein Truetype wie ein Bitmap Font laden? [Re: tagimbul] #474453
10/16/18 16:30
10/16/18 16:30
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
...da wäre noch etwas:

um das Font zu entfernen nutzt man ja RemoveFontResource
dafür hab hier einen kleinen code:
Code:
STRING* tmp_pfad = str_create("");
var i;
char char_tmp;
for (i=0; i<  str_len(work_dir) ; i++) // repeat 5 times 
{
	char_tmp = str_getchr(work_dir, i +1) ;
	str_cat(tmp_pfad , char_tmp  );
	if(char_tmp == 92) 
	str_cat(tmp_pfad , _str(char_tmp ) );
}
str_cat(tmp_pfad, "FontsHOMOARAK.ttf"

var font_entfernt = RemoveFontResource ( _chr(tmp_pfad));
ptr_remove (tmp_pfad);
if(font_entfernt  == 0) { error("das Font <HOMOARAK.ttf>konnte nicht entfernt werden." ) ; }




doch wenn ich mit STRING* arbeite returnt mir RemoveFontResource, 0
wenn ich hingegen den pfad manuel eingebe:
Code:
var font_entfernt = RemoveFontResource  ("C:UsersThomasDesktopgamejamwork spaceFontsHOMOARAK.ttf");


dann funktioniert es.
der erste code benutze ich auch um das Font zu laden (der teil der den pfad erstellt), das funktioniert auch, doch wenn ich den selben code nutze um es zu entfernen, dann klapt es nicht.

mit ist dabei aufgefallen das STRING* Probleme zu haben scheint mi, zewimal hinterinander geschribenen \ zeichen (selbst hier im forum hab ich probleme damit :"D )
habe zu dem thema auch nichts im handbuch gefunden.
wie schreibt man in lite_c korrekt die pfade für win api funktionen?

lg tom

Last edited by tagimbul; 10/16/18 16:35.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: ein Truetype wie ein Bitmap Font laden? [Re: tagimbul] #474455
10/16/18 18:23
10/16/18 18:23
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Benutze Add und Remove einfach ohne Pfadangaben.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: ein Truetype wie ein Bitmap Font laden? [Re: Superku] #474456
10/16/18 19:16
10/16/18 19:16
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
ahh habs gelöst C:

falls jemand eine lite_c variant für fonts addens sucht:

Code:
function remove_font(STRING* font_name)
{
var lenght = str_len(work_dir) + str_len(font_name);
char * char_array = malloc(sizeof(char)* lenght);
strcpy(char_array ,_chr(work_dir));
strcat(char_array , font_name);
var font_entfernt = RemoveFontResource (char_array );
free(char_array );
if(font_entfernt  == 0) error( strcat("folgendes font konnte nicht entfernt werden: " , _chr(font_name))) ; 
}

function add_font(STRING* font_name)
{
var lenght = str_len(work_dir) + str_len(font_name);
char * char_array = malloc(sizeof(char)* lenght);
strcpy(char_array ,_chr(work_dir));
strcat(char_array , font_name);
var font_gefunden = AddFontResource (char_array );
free( char_array );
if(font_gefunden  == 0) error( strcat("folgendes font konnte nicht hinzugefügt werden: " , _chr(font_name))) ; 
}
....

add_font(" \Fonts\HOMOARAK.ttf"); // <-- hier 2x "\" kann es im forum nicht doppelt schreiben



daran denken das von der work_dir aus gesucht wird

Last edited by tagimbul; 10/16/18 20:02.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1