Résolu Gui bug de texture
-
bonjour c’est encore moi cette fois ci quand j’ouvre mon gui je vois la texture en double à savoir que le bouton blanc est normal : c’est un test
voici le code du guipackage com.mathiasetampes.entreprise.client; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.mathiasetampes.entreprise.common.ContainerMoniteur; import com.mathiasetampes.entreprise.common.Entreprise; import com.mathiasetampes.entreprise.common.TileEntityMoniteur; import cpw.mods.fml.common.network.IGuiHandler; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; public class GuiMoniteur extends GuiContainer { private static final ResourceLocation texture = new ResourceLocation(Entreprise.MODID,"textures/gui/container/bureau.png"); private TileEntityMoniteur tileMoniteur; private GuiButton icone; private IInventory playerInv; public GuiMoniteur(InventoryPlayer inventory, TileEntityMoniteur tile) { super(new ContainerMoniteur( inventory,tile)); this.tileMoniteur = tile; this.playerInv = inventory; this.allowUserInput = false; this.ySize = 236; this.xSize = 420; } @Override public void initGui() { super.initGui(); Keyboard.enableRepeatEvents(true); int i = (this.width - this.xSize) / 2; int j = (this.height - this.ySize) / 2; this.buttonList.clear(); this.buttonList.add(this.icone = new IconeButton(0, 106, 100 , 32, 32, "lol","carré")); this.icone.enabled = true; } protected void mouseClicked(int par1, int par2, int par3) { super.mouseClicked(par1, par2, par3); } public void updateScreen() { } protected void keyTyped(char ch, int p_73869_2_) { if(p_73869_2_ == 1 || p_73869_2_ == this.mc.gameSettings.keyBindInventory.getKeyCode()) { this.mc.thePlayer.closeScreen(); } } @Override protected void drawGuiContainerBackgroundLayer(float partialRenderTick, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(texture); int k = (this.width - this.xSize) / 2; int l = (this.height - this.ySize) / 2; this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); } public void drawScreen(int par1, int par2, float par3) { super.drawScreen(par1, par2, par3); GL11.glDisable(GL11.GL_LIGHTING); } protected void drawGuiContainerForegroundLayer(int x, int y) { } protected void actionPerformed(GuiButton p_146284_1_) { } }
-
Je vois pas très bien le problème.
-
bah normalement je devrais voir çà
-
cela vient tu fait que l’image ne se redimensionne pas automatiquement, regardes dans les autre classe de gui qui utilise des texture qui se redimensionne (bouton par exemple) tu devrai ptet trouver un coefficient relatif au dimension de la fenetre
-
maheuresement je fais la meme chose : j’affiche une image avec les dimensions du gui
-
ca fait tout le temps ca ou juste avec certaine dimension de ta fenêtre?
-
tout le temps et quelle que soit l’image
-
quelle sont les dimension de ton image?
-
bah 512*512 pourquoi ?
-
je demandais juste pour savoir su c’était en 2^n et c’est bien le cas, alors du coups je vois pas d’ou ca vient, comme ca fait longtemps que j’ai pas codé sous minecraft, je ne pourrai pas plus t’aider, faut attendre les autre sur ce coup
-
this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
Tu dessines ton élément sur la base de l’écran au lieu de la taille de ta texture.
-
çà change rien en fait
-
le problème c’est que la fonction drawTexturedModalRect ne peut pas afficher des images de plus de 256 pixel car y en a pas besoin pour minecraft
Je suis entrain de voir pour pouvoir afficher des image plus grandeEdit :
Je viens de trouver un tuto pour le faire en 1.2.5 mais il marche encore j’ai tester = http://www.bukkit.fr/index.php/topic/1826-125-afficher-une-image-hd-ou-ld/
Fait pas gaffe au slot j’ai tester sur un gui que j’ai déjà fait -
nn ne t’inquité pas les slot on été enlevé car je n’ai pas besoin de l’inventaire
–---------------------------------
par contre si tu pouvais me passer le code du gui parceque le tuto n’a rien changé -
voila mon code
package com.gmail.martin67370.MineAzurMod.common.gui; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.achievement.GuiAchievements; import net.minecraft.client.gui.achievement.GuiStats; import net.minecraft.client.gui.inventory.GuiChest; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainerCreative; import net.minecraft.client.gui.inventory.GuiDispenser; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.resources.I18n; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.gmail.martin67370.MineAzurMod.common.ContainerShowcaseInv; import com.gmail.martin67370.MineAzurMod.common.MineAzurMod; import com.gmail.martin67370.MineAzurMod.common.TileEntityShowcase; public class GuiShowcaseInv extends GuiContainer { private static final ResourceLocation texture = new ResourceLocation(MineAzurMod.MODID,"textures/gui/container/monitor.png"); private TileEntityShowcase tileShowcase; private InventoryPlayer playerInv; protected World world; public GuiShowcaseInv(TileEntityShowcase tile, InventoryPlayer inventory, World world) { super(new ContainerShowcaseInv(tile, inventory)); this.tileShowcase = tile; this.playerInv = inventory; this.allowUserInput = false; //this.ySize = 175; //this.xSize = 175; this.world = world; this.ySize = 236/2; this.xSize = 420/2; } public void drawTexturedModalRectHd(int p_73729_1_, int p_73729_2_, int p_73729_3_, int p_73729_4_, int p_73729_5_, int p_73729_6_) { float fx = (float)1/xSize; float fy = (float)1/ySize; Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV((double)(p_73729_1_ + 0), (double)(p_73729_2_ + p_73729_6_), (double)this.zLevel, (double)((float)(p_73729_3_ + 0) * fx), (double)((float)(p_73729_4_ + p_73729_6_) * fy)); tessellator.addVertexWithUV((double)(p_73729_1_ + p_73729_5_), (double)(p_73729_2_ + p_73729_6_), (double)this.zLevel, (double)((float)(p_73729_3_ + p_73729_5_) * fx), (double)((float)(p_73729_4_ + p_73729_6_) * fy)); tessellator.addVertexWithUV((double)(p_73729_1_ + p_73729_5_), (double)(p_73729_2_ + 0), (double)this.zLevel, (double)((float)(p_73729_3_ + p_73729_5_) * fx), (double)((float)(p_73729_4_ + 0) * fy)); tessellator.addVertexWithUV((double)(p_73729_1_ + 0), (double)(p_73729_2_ + 0), (double)this.zLevel, (double)((float)(p_73729_3_ + 0) * fx), (double)((float)(p_73729_4_ + 0) * fy)); tessellator.draw(); } @Override public void initGui() { super.initGui(); Keyboard.enableRepeatEvents(true); int i = (this.width - this.xSize) / 2; int j = (this.height - this.ySize) / 2; this.buttonList.clear(); } @Override protected void drawGuiContainerBackgroundLayer(float partialRenderTick, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(texture); int k = (this.width - 420) / 2; int l = (this.height - 236) / 2; this.drawTexturedModalRectHd(k, l, 0, 0, this.xSize, this.ySize); } public void drawScreen(int par1, int par2, float par3) { super.drawScreen(par1, par2, par3); GL11.glDisable(GL11.GL_LIGHTING); } protected void drawGuiContainerForegroundLayer(int x, int y) { } protected void actionPerformed(GuiButton p_146284_1_) { } }
Lis le tuto pour comprendre les différente modification
Ps : attention j’ai changer la tileEntity le container et le nom de la class tu aura juste a remettre tes trucs
Si tu comprend pas qu’elle que chose tu me le dit