Problème texture bouton
-
@‘SCAREX’:
La classe GuiUpdater est ma propre classe, je te l’ai donné à titre d’exemple.
Comment est appelé ton constructeur ? Quelle taille est donnée à ton bouton ?
this.buttonList.add(new boutique(5, width / 2 - 50, height / 4 + 24, 128, 64, “”));
-
Essaie avec çà :
package com.example.examplemod; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; public class boutique extends GuiButton { public static final ResourceLocation texture = new ResourceLocation("menu", "textures/gui/boutique.png"); public boutique(int par1, int par2, int par3, int par4, int par5, String str) { super(par1, par2, par3, par4, par5, str); } @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { if (this.visible) { mc.getTextureManager().bindTexture(texture); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); boolean flag = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; int k = 0; if (flag) k += 64; this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 128, 64); // Dessin du bouton } }PS : pense à changer le package…
-
Non la texture ne s’affiche toujours pas correctement.
-
Envoi ton code et une screenshot.
-
Class du bouton :
package com.example.examplemod; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; public class boutique extends GuiButton { public static final ResourceLocation texture = new ResourceLocation("menu", "textures/gui/boutique.png"); public boutique(int par1, int par2, int par3, int par4, int par5, String str) { super(par1, par2, par3, par4, par5, str); } @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { if (this.visible) { mc.getTextureManager().bindTexture(texture); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); boolean flag = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; int k = 0; if (flag) k += 64; this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 128, 64); // Dessin du bouton } } }Class principal :
private void addSingleplayerMultiplayerButtons(int par1, int par2) { this.buttonList.add(new boutique(5, width / 2 - 50, height / 4 + 24, 128, 64, "")); }Affichage actuel :

-
De quelle taille veux-tu ton bouton ?
PS : les noms de classe commencent par une majuscule
PS 2 : j’ai du modifier ta texture pour qu’elle fasse 512x512.
PS 3 : le blanc dans ton image rend pas terrible et ta texture n’est pas de très bonne qualité, je te conseille de la modifier. -
Je vais refaire les texture, je voudrais que le bouton fasse du 12864 (donc l’image 128128 si il y deux image).
-
J’ai ce résultat, te correspond-t-il ?

-
@‘SCAREX’:
J’ai ce résultat, te correspond-t-il ?

Pour la hauteur oui c’est parfait cepandant est-il possible d’agrandir la largeur (commele bouton singlePlayer) . Désolé je pensais que 128 était plus grand que ça.
-
çà l’est mais après il faut agrandir la texture dans le fichier ou faire la technique de minecraft, c’est-à-dire décomposé le bouton en 2 parties.
-
@‘SCAREX’:
çà l’est mais après il faut agrandir la texture dans le fichier ou faire la technique de minecraft, c’est-à-dire décomposé le bouton en 2 parties.
Si j’agrandis la largeur de l’image il faut aussi que j’agrandisse la hauteur non ?
-
Fait une image de 512x512 et mets la taille que tu veux dedans et laisse le reste vide.
-
@‘SCAREX’:
Fait une image de 512x512 et mets la taille que tu veux dedans et laisse le reste vide.
Ok si je fais ça la partie transparente ne sera pas prise en compte ?
-
Quelle partie transparente ?
-
@‘SCAREX’:
Quelle partie transparente ?
Je parle de la partie vide dû à la texture qui est plus petite. Sinon je pense avoir trouvé la taille qu’il me faut (128*128) mais je n’arrive pas à l’afficher correctement (la texture est coupé).
La nouvelle classe :
package com.example.examplemod; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; public class boutique extends GuiButton { public static final ResourceLocation texture = new ResourceLocation("menu", "textures/gui/boutique.jpg"); public boutique(int par1, int par2, int par3, int par4, int par5, String str) { super(par1, par2, par3, par4, par5, str); } @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { if (this.visible) { mc.getTextureManager().bindTexture(texture); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); boolean flag = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; int k = 0; if (flag) k += 37; this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 128, 128); // Dessin du bouton } } }Et le rendu :

-
Ton bouton fait 64 de haut donc :
int k = 0; if (flag) k += 32; this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 128, 64); -
@‘SCAREX’:
Ton bouton fait 64 de haut donc :
int k = 0; if (flag) k += 32; this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 128, 64);Merci problème résolu pour la hauteur cepandant la texture est toujours coupé sur le côté droit et je ne comprend pas pourquoi.
-
Ah oui, essaie avec çà plutôt :
int k = 0; if (flag) k += 32; this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 256, 64); -
@‘SCAREX’:
Ah oui, essaie avec çà plutôt :
int k = 0; if (flag) k += 32; this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 256, 64);L’image s’affiche bien cependant la texture est toujours aussi grosse. Est-ce normal car 128128 est assez petit (si je réduit encore en 6464 la texture est trop pixélisé tellement c’est petit).

-
J’ai un peu du mal à faire ce genre de bouton, il faudrait demander à quelqu’un qui a l’habitude de ces trucs. Personnellement je n’ai fait qu’une seule fois un bouton dans ce genre.