Welcome on MasterOf13FPS! MasterOf13FPS

Register today or sign up if you are already a member and never miss any cool content again :)

Edited Darkstorm Fontrender

MasterOf13FPS

Administrator
Staff member
Administrator
MasterOf13FPS
Joined
Jul 11, 2020
Messages
0
Reaction score
25
Points
0
Daher das so gefühlt jeder 2te hier nichtmal nen Fontrenderer von einer Lib nehmen kann und ihn modifizieren kann habe ich mich mal entschieden meinen alten hier zu releasen.

Renderer Instanz:
[HIDE] https://ghostbin.com/paste/8nejm [/HIDE]

Fonthandler:
[HIDE] https://ghostbin.com/paste/fe9xe [/HIDE]

Kurze erklärung wie man jetzt damit nen String drawt...
[HIDE] https://ghostbin.com/paste/qctaz [/HIDE]

Ihr könnt die Font Size usw während der Runtime verändern ohne irgendwas manual zu verändern, es wird automatisch erkannt, eine neue Instanz erstellt und diese dann bereitgehalten. Einmal geladen kann die Font Instanz jederzeit während der Runtime des Programs wieder aus der Map geladen werden.

Das System ist nicht perfekt und ihr könnt die kerning derzeit glaube ich noch nicht runtime verändern, also falls mich jemand verbessern will kann er das gerne machen. Der Code ist relativ schnell entstanden deswegen habe ich mal darauf verzichtet wirklich jegliche performance optimierenden Maßnahemen zu verwenden.

Hoffe ihr könnt damit noch was anfangen, wenn es euch geholfen hat dann liked diesen Thread.
 
Last edited by a moderator:
Danke für die indirekte Benennung.
 
Und wie kann man die fonts z.B beim start von minecraft schon in die map laden damit es nicht zur performance einbrüche z.B im mainmenu kommen wird ?
 
Yourmain.instance.getFontHandler().getFont("Roboto", "/assets/minecraft/fontdirectory/Roboto-Regular.ttf", size, 1) einfach nur das callen und dann wird sie in die Map geladen (also mit deinen args)
 
@Redma Kannst du hier ein example code pasten, wie man die fonts aus einem ordner lädt weil ich das nicht hinbekomme durch den inputstream, und kann man die drawString methode in der FontRenderer Klasse einfach zu ner float machen oder kann es dann ingame zu render fehlern bei manchen strings kommen ?
 
Ja kannst du, darfst halt nichts dabei unnötig zu floats machen
 
Ja kannst du, darfst halt nichts dabei unnötig zu floats machen
Okay danke, und das mit den fonts aus einem ordner zB. desktop laden kannst du mir sagen wie das geht ? bekomme es nicht hin
 
Du erstellst zb im Assets Ordner in deinem Source einen neuen Ordner und packst in den Ordner deine Fonts, dann steuerst du den Ordner einfach über den Pfad an...

Yourmain.instance.getFontHandler().getFont("FontName", "/assets/minecraft/deinordner/deinfont.ttf", size, 1)

PS: .ttf kann manchmal auf .otf sein
 
Du erstellst zb im Assets Ordner in deinem Source einen neuen Ordner und packst in den Ordner deine Fonts, dann steuerst du den Ordner einfach über den Pfad an...

Yourmain.instance.getFontHandler().getFont("FontName", "/assets/minecraft/deinordner/deinfont.ttf", size, 1)

PS: .ttf kann manchmal auf .otf sein
Das weiß ich ja, ich meine wie ich fonts wenn ich sie auf dem desktop zB. habe dann vom desktop aus mit dem pfad laden kann
 
Das weiß ich ja, ich meine wie ich fonts wenn ich sie auf dem desktop zB. habe dann vom desktop aus mit dem pfad laden kann
Warum solltest du ne Font vom Desktop laden? Es gibt nicht umsonst Source Assets genau für diesen Grund...
 
Warum solltest du ne Font vom Desktop laden? Es gibt nicht umsonst Source Assets genau für diesen Grund...
Ich wollte nur fragen ob du weißt wie das geht
 
*edit* Keine hastebin links mehr, dafür ghostbin
 
getStringWidth() doesn't work properly.

update: fixed the getStringWidth() issue, however, this new problem occurs. When using color codes with rects this happens.
w1ToLILwlk_nII9t8XsAwGe3ZxD6d11d2wM-YPXMlO4OK-3Ig5Wigu2fkutWmQ9Oumig=s121


even without color codes.

lBZxJQIwTmzLy_GPxe1lIkSmCxpEQLRboGWmWAlwluaUgfoBWZvTd-5kpfBoHq8HvFY_0g=s85

kf5fm3
 
Last edited by a moderator:
shape1
shape2
shape3
shape4
shape5
shape6
Back
Top