MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Problème texture bouton

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.2
    48 Messages 5 Publieurs 13.6k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • SCAREXS Hors-ligne
      SCAREX
      dernière édition par

      @‘Sebenf0rce’:

      @‘jglrxavpok’:

      Quoi qu’il arrive, la méthode drawTexturedModalRect assume que la taille de la texture soit de 256 pixels sur 256, ce qui est celle du gui de base

      Sent from my GT-I9000 using Tapatalk 2

      Du coup on ne peut pas en mettre d’autre ?

      Tu as 2 choix :

      • technique minecraft, créer un fichier de 512*512 et y mettre toutes tes textures (pas très propre, comme d’habitude avec minecraft)
      • Créer un fichier plus petit (comme 128*128) et y mettre tes 2 textures l’une en dessous de l’autre en précisant dans ton code que lorsque le joueur met le curseur dessus, il prend la texture plus bas, exemple :
      
      package fr.scarex.updater.handler;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.gui.GuiMainMenu;
      import net.minecraft.client.renderer.GlStateManager;
      import net.minecraft.util.ResourceLocation;
      import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent;
      import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
      import fr.scarex.updater.Updater;
      import fr.scarex.updater.client.gui.GuiUpdater;
      
      public class UpdaterHandler
      {
      @SubscribeEvent
      public void onInitGuiEvent(final InitGuiEvent event) {
      if (event.gui instanceof GuiMainMenu) event.buttonList.add(new GuiButton(22, event.gui.width / 2 + 108, event.gui.height / 4 + 132, 20, 20, "") {
      protected final ResourceLocation buttonTexture = new ResourceLocation(Updater.MODID, "textures/gui/button_update_big.png"); // Chemin vers la texture
      
      @Override // Ouverture du Gui
      public void mouseReleased(int mouseX, int mouseY) {
      event.gui.mc.displayGuiScreen(new GuiUpdater(event.gui));
      }
      
      @Override // Dessin du bouton
      public void drawButton(Minecraft mc, int mouseX, int mouseY) {
      if (this.visible) {
      mc.getTextureManager().bindTexture(buttonTexture); // On associe la texture
      GlStateManager.color(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; // On regarde si le curseur est au-dessus du bouton
      int k = 0;
      if (flag) k += this.height; // Si oui, on décale de la hauteur du bouton (et donc de la texture), mais tu peux utiliser une valeur statique
      
      this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 20, 20); // Dessin du bouton
      }
      }
      });
      }
      }
      
      

      Site web contenant mes scripts : http://SCAREXgaming.github.io

      Pas de demandes de support par MP ni par skype SVP.
      Je n'accepte sur skype que l…

      1 réponse Dernière réponse Répondre Citer 0
      • S Hors-ligne
        Sebenf0rce
        dernière édition par

        La class GuiUpdater correspond à quoi ?

        Edit : Pour l’instant ma class est comme ceci :

        ​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 // Dessin du bouton
        public void drawButton(Minecraft mc, int mouseX, int mouseY) {
        if (this.visible) {
        mc.getTextureManager().bindTexture(texture); // On associe la 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; // On regarde si le curseur est au-dessus du bouton
        int k = 0;
        if (flag) k += this.height; // Si oui, on décale de la hauteur du bouton (et donc de la texture), mais tu peux utiliser une valeur statique
        
        this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 128, 128); // Dessin du bouton
        }
        }
        }
        

        Le rendu comme ceci :

        Et la texture comme cela :

        En 128*128

        1 réponse Dernière réponse Répondre Citer 0
        • SCAREXS Hors-ligne
          SCAREX
          dernière édition par

          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 ?

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

          1 réponse Dernière réponse Répondre Citer 0
          • S Hors-ligne
            Sebenf0rce
            dernière édition par

            @‘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, “”));

            1 réponse Dernière réponse Répondre Citer 0
            • SCAREXS Hors-ligne
              SCAREX
              dernière édition par

              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…

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

              1 réponse Dernière réponse Répondre Citer 0
              • S Hors-ligne
                Sebenf0rce
                dernière édition par

                Non la texture ne s’affiche toujours pas correctement.

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREXS Hors-ligne
                  SCAREX
                  dernière édition par

                  Envoi ton code et une screenshot.

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

                  1 réponse Dernière réponse Répondre Citer 0
                  • S Hors-ligne
                    Sebenf0rce
                    dernière édition par

                    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 :

                    1 réponse Dernière réponse Répondre Citer 0
                    • SCAREXS Hors-ligne
                      SCAREX
                      dernière édition par

                      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.

                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                      Pas de demandes de support par MP ni par skype SVP.
                      Je n'accepte sur skype que l…

                      1 réponse Dernière réponse Répondre Citer 0
                      • S Hors-ligne
                        Sebenf0rce
                        dernière édition par

                        Je vais refaire les texture, je voudrais que le bouton fasse du 12864 (donc l’image 128128 si il y deux image).

                        1 réponse Dernière réponse Répondre Citer 0
                        • SCAREXS Hors-ligne
                          SCAREX
                          dernière édition par

                          J’ai ce résultat, te correspond-t-il ?

                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                          Pas de demandes de support par MP ni par skype SVP.
                          Je n'accepte sur skype que l…

                          1 réponse Dernière réponse Répondre Citer 0
                          • S Hors-ligne
                            Sebenf0rce
                            dernière édition par

                            @‘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.

                            1 réponse Dernière réponse Répondre Citer 0
                            • SCAREXS Hors-ligne
                              SCAREX
                              dernière édition par

                              çà 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.

                              Site web contenant mes scripts : http://SCAREXgaming.github.io

                              Pas de demandes de support par MP ni par skype SVP.
                              Je n'accepte sur skype que l…

                              1 réponse Dernière réponse Répondre Citer 0
                              • S Hors-ligne
                                Sebenf0rce
                                dernière édition par

                                @‘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 ?

                                1 réponse Dernière réponse Répondre Citer 0
                                • SCAREXS Hors-ligne
                                  SCAREX
                                  dernière édition par

                                  Fait une image de 512x512 et mets la taille que tu veux dedans et laisse le reste vide.

                                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                                  Pas de demandes de support par MP ni par skype SVP.
                                  Je n'accepte sur skype que l…

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • S Hors-ligne
                                    Sebenf0rce
                                    dernière édition par

                                    @‘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 ?

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • SCAREXS Hors-ligne
                                      SCAREX
                                      dernière édition par

                                      Quelle partie transparente ?

                                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                                      Pas de demandes de support par MP ni par skype SVP.
                                      Je n'accepte sur skype que l…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • S Hors-ligne
                                        Sebenf0rce
                                        dernière édition par

                                        @‘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 :

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • SCAREXS Hors-ligne
                                          SCAREX
                                          dernière édition par

                                          Ton bouton fait 64 de haut donc :

                                          
                                          int k = 0;
                                          if (flag) k += 32;
                                          
                                          this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, k, 128, 64);
                                          
                                          

                                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                                          Pas de demandes de support par MP ni par skype SVP.
                                          Je n'accepte sur skype que l…

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • S Hors-ligne
                                            Sebenf0rce
                                            dernière édition par

                                            @‘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.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB