• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Modifier les Boutons

    1.7.x
    1.7.2
    6
    18
    3738
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • BurningCraft
      BurningCraft last edited by

      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 Reply Last reply Reply Quote 0
      • SCAREX
        SCAREX last edited by

        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 Reply Last reply Reply Quote 0
        • BurningCraft
          BurningCraft last edited by

          @‘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 Reply Last reply Reply Quote 0
          • Ama
            Ama last edited by

            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 Reply Last reply Reply Quote 0
            • BurningCraft
              BurningCraft last edited by

              @‘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 Reply Last reply Reply Quote 0
              • BurningCraft
                BurningCraft last edited by

                @‘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 Reply Last reply Reply Quote 0
                • BrokenSwing
                  BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                  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 Reply Last reply Reply Quote 0
                  • Ama
                    Ama last edited by

                    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 Reply Last reply Reply Quote 0
                    • BurningCraft
                      BurningCraft last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • BurningCraft
                        BurningCraft last edited by

                        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 Reply Last reply Reply Quote 0
                        • Deleted
                          Deleted last edited by

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

                          1 Reply Last reply Reply Quote 0
                          • BurningCraft
                            BurningCraft last edited by

                            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 Reply Last reply Reply Quote 0
                            • Deleted
                              Deleted last edited by

                              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 Reply Last reply Reply Quote 0
                              • BurningCraft
                                BurningCraft last edited by

                                @‘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 Reply Last reply Reply Quote 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                  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 Reply Last reply Reply Quote 0
                                  • BurningCraft
                                    BurningCraft last edited by

                                    @‘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 Reply Last reply Reply Quote 0
                                    • BrokenSwing
                                      BrokenSwing Moddeurs confirmés Rédacteurs last edited by

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

                                      1 Reply Last reply Reply Quote 0
                                      • BurningCraft
                                        BurningCraft last edited by

                                        @‘BrokenSwing’:

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

                                        Merci, je passe en resolus 😛

                                        1 Reply Last reply Reply Quote 0
                                        • 1 / 1
                                        • First post
                                          Last post
                                        Design by Woryk
                                        Contact / Mentions Légales

                                        MINECRAFT FORGE FRANCE © 2018

                                        Powered by NodeBB