• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Modifier les Boutons

    1.7.x
    1.7.2
    6
    18
    3769
    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.
    • BurningCraft
      BurningCraft dernière édition par

      bonjour, alors voici mon problème je voudrait que les bouton du menue principale soit “transparent” donc j’ai modifier la texture des widget et j’ai gommer l’endroit des bouton donc cela donne:

      http://www.noelshack.com/2015-48-1448813386-widgetscustom.png

      et j’ai crée une class GuiCustomButton :

      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import fr.burning.lfc.LaFrenchCraftMOD;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.audio.PositionedSoundRecord;
      import net.minecraft.client.audio.SoundHandler;
      import net.minecraft.client.gui.FontRenderer;
      import net.minecraft.client.gui.Gui;
      import net.minecraft.client.renderer.OpenGlHelper;
      import net.minecraft.util.ResourceLocation;
      import org.lwjgl.opengl.GL11;
      
      @SideOnly(Side.CLIENT)
      public class GuiCustomButton extends Gui
      {
          protected static final ResourceLocation buttonTextures = new ResourceLocation("modid", "textures/gui/widgetsCustom.png");
          /** Button width in pixels */
          protected int width;
          /** Button height in pixels */
          protected int height;
          /** The x position of this control. */
          public int xPosition;
          /** The y position of this control. */
          public int yPosition;
          /** The string displayed on this control. */
          public String displayString;
          public int id;
          /** True if this control is enabled, false to disable. */
          public boolean enabled;
          /** Hides the button completely if false. */
          public boolean visible;
          protected boolean field_146123_n;
          private static final String __OBFID = "CL_00000668";
          public int packedFGColour;
      
          public GuiCustomButton(int par1, int par2, int par3, String par4Str)
          {
              this(par1, par2, par3, 200, 20, par4Str);
          }
      
          public GuiCustomButton(int par1, int par2, int par3, int par4, int par5, String par6Str)
          {
              this.width = 200;
              this.height = 20;
              this.enabled = true;
              this.visible = true;
              this.id = par1;
              this.xPosition = par2;
              this.yPosition = par3;
              this.width = par4;
              this.height = par5;
              this.displayString = par6Str;
          }
      
          /**
           * Returns 0 if the button is disabled, 1 if the mouse is NOT hovering over this button and 2 if it IS hovering over
           * this button.
           */
          protected int getHoverState(boolean p_146114_1_)
          {
              byte b0 = 1;
      
              if (!this.enabled)
              {
                  b0 = 0;
              }
              else if (p_146114_1_)
              {
                  b0 = 2;
              }
      
              return b0;
          }
      
          /**
           * Draws this button to the screen.
           */
          public void drawButton(Minecraft p_146112_1_, int p_146112_2_, int p_146112_3_)
          {
              if (this.visible)
              {
                  FontRenderer fontrenderer = p_146112_1_.fontRenderer;
                  p_146112_1_.getTextureManager().bindTexture(buttonTextures);
                  GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                  this.field_146123_n = p_146112_2_ >= this.xPosition && p_146112_3_ >= this.yPosition && p_146112_2_ < this.xPosition + this.width && p_146112_3_ < this.yPosition + this.height;
                  int k = this.getHoverState(this.field_146123_n);
                  GL11.glEnable(GL11.GL_BLEND);
                  OpenGlHelper.glBlendFunc(770, 771, 1, 0);
                  GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                  this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + k * 20, this.width / 2, this.height);
                  this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + k * 20, this.width / 2, this.height);
                  this.mouseDragged(p_146112_1_, p_146112_2_, p_146112_3_);
                  int l = 14737632;
      
                  if (packedFGColour != 0)
                  {
                      l = packedFGColour;
                  }
                  else if (!this.enabled)
                  {
                      l = 10526880;
                  }
                  else if (this.field_146123_n)
                  {
                      l = 16777120;
                  }
      
                  this.drawCenteredString(fontrenderer, this.displayString, this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, l);
              }
          }
      
          /**
           * Fired when the mouse button is dragged. Equivalent of MouseListener.mouseDragged(MouseEvent e).
           */
          protected void mouseDragged(Minecraft p_146119_1_, int p_146119_2_, int p_146119_3_) {}
      
          /**
           * Fired when the mouse button is released. Equivalent of MouseListener.mouseReleased(MouseEvent e).
           */
          public void mouseReleased(int p_146118_1_, int p_146118_2_) {}
      
          /**
           * Returns true if the mouse has been pressed on this control. Equivalent of MouseListener.mousePressed(MouseEvent
           * e).
           */
          public boolean mousePressed(Minecraft p_146116_1_, int p_146116_2_, int p_146116_3_)
          {
              return this.enabled && this.visible && p_146116_2_ >= this.xPosition && p_146116_3_ >= this.yPosition && p_146116_2_ < this.xPosition + this.width && p_146116_3_ < this.yPosition + this.height;
          }
      
          public boolean func_146115_a()
          {
              return this.field_146123_n;
          }
      
          public void func_146111_b(int p_146111_1_, int p_146111_2_) {}
      
          public void func_146113_a(SoundHandler p_146113_1_)
          {
              p_146113_1_.playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
          }
      
          public int getButtonWidth()
          {
              return this.width;
          }
      }
      

      mais cela ne marche pas 😞

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

        Les simples “copier-coller” ne marchent pas, il faut connaître un peu :

        • dans le resource location il faut remplacer modid par ton modid
        • l’OBFID ne sert à rien
        • Je ne vois plus du tout les boutons sur la texture
        • il faut activer la transparence lorsque l’on dessine le 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
        • BurningCraft
          BurningCraft dernière édition par

          @‘SCAREX’:

          Les simples “copier-coller” ne marchent pas, il faut connaître un peu :

          • dans le resource location il faut remplacer modid par ton modid
          • l’OBFID ne sert à rien
          • Je ne vois plus du tout les boutons sur la texture
          • il faut activer la transparence lorsque l’on dessine le bouton

          Oui je sais qu’il faut metre le modid sur mon code il y ai j’ai marquer modid pour que vous ssacher a quoi sa correspond ^^

          Et quand j’ai editer l’image sur photoshop il y a bien la transparence ^^

          1 réponse Dernière réponse Répondre Citer 0
          • Ama
            Ama dernière édition par

            Si t’es boutons sont mapper dans le fichier de la texture, n’importe comment faudrait penser à regarder là non ?

            this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + k * 20, this.width / 2, this.height);
            this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + k * 20, this.width / 2, this.height);
            

            Car tout dépend de la position de tes boutons dans l’atlas…

            Comprenez un peu le code avant de faire n’importe quoi voyons.

            Si je t'ai filé un coup de main n'oublie pas le + / -
            Par contre évite les demandes d'aides en MP, tu sera sympa'

            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

            1 réponse Dernière réponse Répondre Citer 0
            • BurningCraft
              BurningCraft dernière édition par

              @‘ZeAmateis’:

              Si t’es boutons sont mapper dans le fichier de la texture, n’importe comment faudrait penser à regarder là non ?

              this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + k * 20, this.width / 2, this.height);
                         this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + k * 20, this.width / 2, this.height);
              

              Car tout dépend de la position de tes boutons dans l’atlas…

              Comprenez un peu le code avant de faire n’importe quoi voyons.

              heuu j’ai pas tout compris ^^

              1 réponse Dernière réponse Répondre Citer 0
              • BurningCraft
                BurningCraft dernière édition par

                @‘ZeAmateis’:

                Si t’es boutons sont mapper dans le fichier de la texture, n’importe comment faudrait penser à regarder là non ?

                this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + k * 20, this.width / 2, this.height);
                           this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + k * 20, this.width / 2, this.height);
                

                Car tout dépend de la position de tes boutons dans l’atlas…

                Comprenez un peu le code avant de faire n’importe quoi voyons.

                Heuu, desoler j’ai pas compris se que tu veut dire  ^^

                1 réponse Dernière réponse Répondre Citer 0
                • BrokenSwing
                  BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par

                  Bah cette fonction affiche la portion de texture à l’endroit où on veut, en gros avec les bonnes valeurs, si tes boutons sont sur ta texture t’as juste à mettre leurs coordonnées x et y en premier argument puis en troisième et quatrième arguments l’endroit où tu veux les afficher et en sixième et septième la taille des boutons

                  1 réponse Dernière réponse Répondre Citer 0
                  • Ama
                    Ama dernière édition par

                    Exact.

                    Si je t'ai filé un coup de main n'oublie pas le + / -
                    Par contre évite les demandes d'aides en MP, tu sera sympa'

                    La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                    Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                    1 réponse Dernière réponse Répondre Citer 0
                    • BurningCraft
                      BurningCraft dernière édition par

                      Ha ok ^^ , Merci je vais regarder sa samedis et je repasse pour vous dire 🙂

                      1 réponse Dernière réponse Répondre Citer 0
                      • BurningCraft
                        BurningCraft dernière édition par

                        merci les bouton marche bien mais j’ai un autre soucis quand le jeu est en “petite fenetre” les bouton son mal placer alors que quand le jeu est en “plein ecrans” les bouton son au bon endroit une idee pour que la position des bouton s’adapte en fonction de la fenetre ?

                        1 réponse Dernière réponse Répondre Citer 0
                        • Deleted
                          Deleted dernière édition par

                          Joue en debug et adapte les positions en fonction des 2 variables (de la classe du Gui) width et height

                          1 réponse Dernière réponse Répondre Citer 0
                          • BurningCraft
                            BurningCraft dernière édition par

                            si je joue avec ces 2 variable les bouton vont changer de place en petite fenêtre et plein écrans.

                            Je m’explique car j’avoue que c’est pas très clair XD:

                            Quand je suis en plein écran mes bouton son a la bonne place :

                            http://www.noelshack.com/2015-49-1449347539-pleinecran.png

                            Alors que quand je suis en “petite fenêtre” les bouton son mal placer :

                            http://www.noelshack.com/2015-49-1449347541-petitecran.png

                            je voudrait que les bouton se cadre automatiquement par rapport a la taille de la fenetre pour que les bouton soie toujours bien placer comme en plein écran 🙂

                            1 réponse Dernière réponse Répondre Citer 0
                            • Deleted
                              Deleted dernière édition par

                              Non il seront à la bonne place proportionnellement à la taille de la fenêtre. Si tu ne me crois pas, regarde le code du GuiMainMenu de MC, ils font comme ça !

                              1 réponse Dernière réponse Répondre Citer 0
                              • BurningCraft
                                BurningCraft dernière édition par

                                @‘Plaigon’:

                                Non il seront à la bonne place proportionnellement à la taille de la fenêtre. Si tu ne me crois pas, regarde le code du GuiMainMenu de MC, ils font comme ça !

                                je vient de tester avec le bouton option je l’ai crée comme ceci :

                                int i = this.height / 4 + 48;
                                
                                this.buttonList.add(new GuiButton(0, this.width / 2 + 110,  i + 6, 98, 20,("Options")));
                                

                                j’ai donc changer les valeur qui se trouve a la place de  “2+110” pour la position en longeur et j’ai changer la valeur qui se trouve a  “6” pour la hauteur

                                mais cela ne marche toujours pas.

                                es que tu me parlais bien de sa ou je suis a côter de la plaque ^^?

                                1 réponse Dernière réponse Répondre Citer 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                  Les boutons de MC sont positionnés en fonction du centre. Comme ils sont placé au centre cette façon de faire est efficace.
                                  Toi tu cherche à positionner les boutons vers la droite. Du-coup si tu te base sur le centre ça ne fonctionne pas très bien.
                                  Il faudrait plutôt se baser sur les 3/4 (depuis la gauche) de la fenêtre. (donc this.width / 4 * 3)

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • BurningCraft
                                    BurningCraft dernière édition par

                                    @‘robin4002’:

                                    Les boutons de MC sont positionnés en fonction du centre. Comme ils sont placé au centre cette façon de faire est efficace.
                                    Toi tu cherche à positionner les boutons vers la droite. Du-coup si tu te base sur le centre ça ne fonctionne pas très bien.
                                    Il faudrait plutôt se baser sur les 3/4 (depuis la gauche) de la fenêtre. (donc this.width / 4 * 3)

                                    Merci c’est parfait 🙂  .

                                    par contre j’ai une dernière question au niveau des boutons ^^

                                    es que cela est possible de changer la police d’écriture des boutons ? (j’ai regarder dans ma classe du bouton mais rien trouver par rapport au écriture)

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • BrokenSwing
                                      BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par

                                      Normal, l’écriture est rendu par rapport à une texture contenant les caractères

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • BurningCraft
                                        BurningCraft dernière édition par

                                        @‘BrokenSwing’:

                                        Normal, l’écriture est rendu par rapport à une texture contenant les caractères

                                        Merci, je passe en resolus 😛

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

                                        MINECRAFT FORGE FRANCE © 2018

                                        Powered by NodeBB