Résolu Changer la taille de la police dans un gui
-
Bonjour tout le monde alors voila, aujourd’hui j’ai un probleme quant à la police d’ecriture de mon gui que je trouve trop grande, j’utilise cette fonction pour afficher un string : ```java
this.fontRendererObj.drawString(I18n.format(“mhpe.gui.award.” + (i + 1) + “.line.1”, new Object[0]), x + 130, y + 105, 0xF0F0F0);mais voila aucune variable change la taille de la police d'ecriture…
-
Il faudrait jouer avec OpenGL, en particulier glScale
-
Merci sa fonctionne une dernière question, lorsque que je réduit les cale a 0,7 et que je veux l’appliquer juste à un bout de code définit et non à tout ce qui précède glscale comment faire ?
-
@‘Portuar’:
Merci sa fonctionne une dernière question, lorsque que je réduit les cale a 0,7 et que je veux l’appliquer juste à un bout de code définit et non à tout ce qui précède glscale comment faire ?
float facteur = .7f; glScalef(facteur, facteur, facteur); ton bloc de code glScalef(1f/facteur, 1f/facteur, 1f/facteur);
ou
glPushMatrix(); float facteur = .7f; glScalef(facteur, facteur, facteur); ton bloc de code glPopMatrix();
permettent de faire ce que tu cherches normalement.
-
J ai retenue la deuxième méthode qui fonctionne parfaitement merci beaucoup!
Édit : rectification, après avoir fait des test, lorsque je met le jeux en full screen ou que je change la taille de la fenêtre , le texte changé de position alors que tout fonction sans le glscale
-
@‘Portuar’:
J ai retenue la deuxième méthode qui fonctionne parfaitement merci beaucoup!
Édit : rectification, après avoir fait des test, lorsque je met le jeux en full screen ou que je change la taille de la fenêtre , le texte changé de position alors que tout fonction sans le glscale
Montre moi le code. Il est possible qu’il y est des glTranslate et compagnie qui trainent.
-
Nop zero mais voila comme même le code
GL11.glPushMatrix(); GL11.glScalef(0.7f, 0.9f, 1.0f); this.fontRendererObj.drawString(I18n.format("mhpe.gui.award." + (i + 1) + ".line.1", new Object[0]), x + 225, y + 122, 0xF0F0F0); this.fontRendererObj.drawString(I18n.format("mhpe.gui.award." + (i + 1) + ".line.2", new Object[0]), x + 225, y + 132, 0xF0F0F0); this.fontRendererObj.drawString(I18n.format("mhpe.gui.award." + (i + 1) + ".line.3", new Object[0]), x + 225, y + 142, 0xF0F0F0); GL11.glPopMatrix();
-
Il vaudrait multiplier toutes les coordonnees passees dans drawString par 1.f/facteur
Écrit avec Tapatalk depuis mon mobile. Pardonnez les possibles fautes, j’aime juste pas écrire avec mon mobile.
-
Penses tu que cela peux marcher si je faisais x + la valeur * scaledresolutioń je n ais pas trop compris ce que tu ma proposé puisque si je multiplie tout par 1/facteur les position seront toujours affecter par le glscale puisque que je ne fais que multiplier un calcul vraisemblablement faux.
-
De mon côté, j’ai ceci:
float factor = 0.85f; glScalef(factor, factor, 1); Minecraft.getMinecraft().fontRenderer.drawString("mon texte", (int)((x+maValeurSurX)*(1f/factor)), (int)((y+(maValeurSurY))*(1f/factor)), laCouleur); glScalef(1f/factor, 1f/factor, 1);
Il s’agit de multiplier toutes les coordonnées par l’inverse du facteur, les appels à glTranslate dans le code de Minecraft sont affectés aussi par glScalef.
-
Oui cela fonctionne sujet résolut.
Ps : désolé de ne pas avoir essayer a la vue de ton message mais l’endroit ou je suis donne un reseau restreint et je ne peu donc pas faire les deux en même temps
-
Je déplace dans résolus