Petit problème de GUI et quelques question
-
Dans ton GuiChecker, tu crées un field de type FontRenderer appelé ‘fontRendererObj’, que tu n’initialises pas.
Le problème est qu’ainsi tu “caches” le fontRendererObj de GuiScreen, qui lui a une valeur et donc ne ferra pas planter GuiTextBox.Donc la solution est de simplement supprimer cette ligne dans GuiChecker.java:
private FontRenderer fontRendererObj; -
Merci

mais du coup l’image n’est plus centré -
Il n’était pas centré avant non plus puisque ça plantait

A priori, le TextGui a besoin d’un FontRenderer. Il faut donc bien lui en passer un, mais il faut le créer (ou l’obtenir). Dans ton code qui plante, tu déclares le font renderer,c’est tout.
D’après le message précédent, j’imagine (je n’ai pas le code sous les yeux) qu’il te faut obtenir l’instance d’un font renderer depuis GuiScreen
-
@‘Mokona78’:
Il n’était pas centré avant non plus puisque ça plantait

A priori, le TextGui a besoin d’un FontRenderer. Il faut donc bien lui en passer un, mais il faut le créer (ou l’obtenir). Dans ton code qui plante, tu déclares le font renderer,c’est tout.
D’après le message précédent, j’imagine (je n’ai pas le code sous les yeux) qu’il te faut obtenir l’instance d’un font renderer depuis GuiScreen
[font=Ubuntu, sans-serifquoi va ou ? xD (si il était centré avant que j’ajoute la text box)]
PS :C’est l’u de mes premier GUI .
-
@‘Mokona78’:
Il n’était pas centré avant non plus puisque ça plantait

A priori, le TextGui a besoin d’un FontRenderer. Il faut donc bien lui en passer un, mais il faut le créer (ou l’obtenir). Dans ton code qui plante, tu déclares le font renderer,c’est tout.
D’après le message précédent, j’imagine (je n’ai pas le code sous les yeux) qu’il te faut obtenir l’instance d’un font renderer depuis GuiScreen
Il y a déjà une instance de FontRenderer dans GuiScreen.java, donc toutes classe extends GuiScreen en a aussi une.
Ce n’est pas ça le problème. -
Si je lis le code ci-dessus:
- Je vois que GuiTextField extends Gui, et non GuiScreen.
- Et que GuiTextField a son propre FontRenderer.
- Un peu plus loin, je lis qu’il n’existe qu’un seul constructeur, qui prend comme premier paramètre une instance de FontRenderer.
D’où ma réponse.
-
Ah… je viens de voir que c’est la classe créée qui hérite de GuiScreen. Du coup, ok, je comprends la réponse.
-
donc du coup je fait quoi ?
-
Faut que tu changer les coordonnées dans le code du drawScreen.
-
Tu supprime ça :
private static final int width = 0; private static final int height = 0;Il ne faut pas mettre ces variables car elles sont déjà présentes dans la classe GuiScreen, surtout que les tiennes n’ont pas les bonnes valeurs.
-
je voudrais ajouté un drawString mais ça me causait des problème je fait comment ?
-
Quoi comme problèmes ?
-
je voudrais ajouté ça :
[font=monospace```java
] fontrenderer.drawStringWithShadow(“This is the test string!”, 1, 1, 0xffffffff);[font=monospacemais j'ai un problémme avec : [font=monospace**```java ]private** [font=monospaceFontRenderer][font=monospace fontRendererObj][font=monospace; ```] [font=monospacevoir le message de **[[color=#0072bc]**★jglrxavpok★**]](https://www.minecraftforgefrance.fr/member.php?action=profile&uid=33)**[size=small ] -
Tu n’as pas a mettre ça :
private FontRenderer fontRendererObj; ``` car il est déjà dans GuiScreen. -
fontrenderer.drawStringWithShadow("This is the test string!", 1, 1, 0xffffffff);erreur : fontrenderer cannot be resolved
-
this.fontRendererObj.drawStringWithShadow(“This is the test string!”, 1, 1, 0xffffffff);
-
je voudrais s’avoir comment utilisé se que le joueur a écrit dans la TextBox et cherché si il n’y a pas de joueur connécté qui as le même pseudo
je sais que je peut utilisé ```java
textfield.getText()par pitié ne me dites pas que je vais utilisé des packets -
Si, il faut que tu envoies le nom su joueur au serveur qui regarde si il est connecté, mais il mesemble que l’on peut faire le test directement côté client, je regarde…
EDIT : pas besoin de packet pour savoir si un joueur est connecté :
NetworkPlayerInfo playerInfo = mc.getNetHandler().getPlayerInfo(textfield.getText());Si le joueur n’est pas connecté, playerInfo va être null, sinon il correspondra au NetworkPlayerInfo de ce joueur.
-
je le mets ou ??
-
Bah à l’endroit où tu veux savoir si il y a un joueur connecté, je suppose après que le joueur ait appuyé sur un bouton donc dans la fonction “public void actionPerformed(GuiButton button)” de ton gui.
