MFF

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

    Problème Affichage Guimainmenu

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    4 Messages 3 Publieurs 1.1k 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.
    • Antoine_A Hors-ligne
      Antoine_
      dernière édition par

      Bonjour j’ai suivi le tuto de Robin sur les gui main menu

      Mais j’ai un soucis mais bouton ce déplace par rapport au fond d’écran de mon gui lors que je redimensionne ma fenêtre.

      Voici ma classe en question

      @SideOnly(Side.CLIENT)
      public class Guicustommainmenu extends GuiScreen
      implements GuiYesNoCallback
      {
      private static final Logger logger = LogManager.getLogger();
      private static final Random rand = new Random();
      private float updateCounter;
      private String splashText;
      private GuiButton buttonResetDemo;
      private int panoramaTimer;
      private DynamicTexture viewportTexture;
      private final Object field_104025_t = new Object();
      private String field_92025_p;
      private String field_146972_A;
      private String field_104024_v;
      private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt");
      private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("TutoMod:textures/gui/mainmenu.png");
      private final ResourceLocation backGround = new ResourceLocation("TutoMod:textures/gui/mainmenu/mainmenu2.png");
      public static final String field_96138_a = "Please click " + EnumChatFormatting.UNDERLINE + "here" + EnumChatFormatting.RESET + " for more information.";
      private int field_92024_r;
      private int field_92023_s;
      private int field_92022_t;
      private int field_92021_u;
      private int field_92020_v;
      private int field_92019_w;
      private ResourceLocation field_110351_G;
      private static final String __OBFID = "CL_00001154";
      
      public Guicustommainmenu()
      {
       this.field_146972_A = field_96138_a;
       this.splashText = "missingno";
       BufferedReader bufferedreader = null;
       try
       {
         ArrayList arraylist = new ArrayList();
         bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8));
         String s;
         while ((s = bufferedreader.readLine()) != null)
         {
           s = s.trim();
           if (!s.isEmpty()) {
             arraylist.add(s);
           }
         }
         if (!arraylist.isEmpty()) {
           do
           {
             this.splashText = ((String)arraylist.get(rand.nextInt(arraylist.size())));
           } while (this.splashText.hashCode() == 125780783);
         }
         if (bufferedreader != null) {
           try
           {
             bufferedreader.close();
           }
           catch (IOException localIOException) {}
         }
         this.updateCounter = rand.nextFloat();
       }
       catch (IOException localIOException1) {}finally
       {
         if (bufferedreader != null) {
           try
           {
             bufferedreader.close();
           }
           catch (IOException localIOException3) {}
         }
       }
       this.field_92025_p = "";
       if ((!GLContext.getCapabilities().OpenGL20) && (!OpenGlHelper.func_153193_b()))
       {
         this.field_92025_p = I18n.format("title.oldgl1", new Object[0]);
         this.field_146972_A = I18n.format("title.oldgl2", new Object[0]);
         this.field_104024_v = "https://help.mojang.com/customer/portal/articles/325948?ref=game";
       }
      }
      
      public void updateScreen()
      {
       this.panoramaTimer += 1;
      }
      
      public boolean doesGuiPauseGame()
      {
       return false;
      }
      
      protected void keyTyped(char p_73869_1_, int p_73869_2_) {}
      
      public void initGui()
      {
       this.viewportTexture = new DynamicTexture(256, 256);
       this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture);
       Calendar calendar = Calendar.getInstance();
       calendar.setTime(new Date());
       if ((calendar.get(2) + 1 == 11) && (calendar.get(5) == 9)) {
         this.splashText = "Happy birthday, ez!";
       } else if ((calendar.get(2) + 1 == 6) && (calendar.get(5) == 1)) {
         this.splashText = "Happy birthday, Notch!";
       } else if ((calendar.get(2) + 1 == 12) && (calendar.get(5) == 24)) {
         this.splashText = "Merry X-mas!";
       } else if ((calendar.get(2) + 1 == 1) && (calendar.get(5) == 1)) {
         this.splashText = "Happy new year!";
       } else if ((calendar.get(2) + 1 == 10) && (calendar.get(5) == 31)) {
         this.splashText = "OOoooOOOoooo! Spooky!";
       }
       boolean flag = true;
       int i = this.height / 4 + 48;
       if (this.mc.isDemo()) {
         addDemoButtons(i, 24);
       } else {
         addSingleplayerMultiplayerButtons(i, 24);
       }
       this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0])));
       this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0])));
       this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12));
       Object object = this.field_104025_t;
       synchronized (this.field_104025_t)
       {
         this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p);
         this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A);
         int j = Math.max(this.field_92023_s, this.field_92024_r);
         this.field_92022_t = ((this.width - j) / 2);
         this.field_92021_u = (((GuiButton)this.buttonList.get(0)).yPosition - 24);
         this.field_92020_v = (this.field_92022_t + j);
         this.field_92019_w = (this.field_92021_u + 24);
       }
      }
      
      private void addSingleplayerMultiplayerButtons(int x, int y)
      {
       this.buttonList.add(new GuiButton(1, this.width / 2 - 100, x, 200, 20, I18n.format("menu.singleplayer", new Object[0])));
       this.buttonList.add(new GuiButton(20, this.width / 2 - 100, x + y * 1, "Multijoueur"));
       GuiButton webSiteButton = new GuiButton(21, this.width / 2 - 100, x + y * 2, "Chaine Youtube");
       GuiButton fmlModButton = new GuiButton(6, this.width / 2 - 100, x + y * 2, "Mods");
       fmlModButton.xPosition = (this.width / 2 + 2);
       webSiteButton.width = 98;
       fmlModButton.width = 98;
       this.buttonList.add(webSiteButton);
       this.buttonList.add(fmlModButton);
      }
      
      private void addDemoButtons(int x, int y)
      {
       this.buttonList.add(new GuiButton(11, this.width / 2 - 100, x, I18n.format("menu.playdemo", new Object[0])));
       this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, x + y * 1, I18n.format("menu.resetdemo", new Object[0])));
       ISaveFormat isaveformat = this.mc.getSaveLoader();
       WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
       if (worldinfo == null) {
         this.buttonResetDemo.enabled = false;
       }
      }
      
      protected void actionPerformed(GuiButton button)
      {
       if (button.id == 0) {
         this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
       }
       if (button.id == 5) {
         this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager()));
       }
       if (button.id == 1) {
         this.mc.displayGuiScreen(new GuiSelectWorld(this));
       }
       if (button.id == 2) {
         this.mc.displayGuiScreen(new GuiMultiplayer(this));
       }
       if (button.id == 4) {
         this.mc.shutdown();
       }
       if (button.id == 6) {
         this.mc.displayGuiScreen(new GuiModList(this));
       }
       if (button.id == 11) {
         this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
       }
       if (button.id == 12)
       {
         ISaveFormat isaveformat = this.mc.getSaveLoader();
         WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
         if (worldinfo != null)
         {
           GuiYesNo guiyesno = GuiSelectWorld.func_152129_a(this, worldinfo.getWorldName(), 12);
           this.mc.displayGuiScreen(guiyesno);
         }
       }
       if (button.id == 20)
       {
         FMLClientHandler.instance().setupServerList();
         FMLClientHandler.instance().connectToServer(this, new ServerData("Multijoueur", "localhost"));
       }
       if (button.id == 21) {
         try
         {
           Class oclass = Class.forName("java.awt.Desktop");
           Object object = oclass.getMethod("getDesktop", new Class[0]).invoke(null, new Object[0]);
           oclass.getMethod("browse", new Class[] { URI.class }).invoke(object, new Object[] { new URI("https://www.youtube.com/channel/UC7gcNpW72tICHQZQ1iJEHbA") });
         }
         catch (Throwable throwable)
         {
           logger.error("Couldn't open link", throwable);
         }
       }
      }
      
      public void confirmClicked(boolean p_73878_1_, int id)
      {
       if ((p_73878_1_) && (id == 12))
       {
         ISaveFormat isaveformat = this.mc.getSaveLoader();
         isaveformat.flushCache();
         isaveformat.deleteWorldDirectory("Demo_World");
         this.mc.displayGuiScreen(this);
       }
       else if (id == 13)
       {
         if (p_73878_1_) {
           try
           {
             Class oclass = Class.forName("java.awt.Desktop");
             Object object = oclass.getMethod("getDesktop", new Class[0]).invoke(null, new Object[0]);
             oclass.getMethod("browse", new Class[] { URI.class }).invoke(object, new Object[] { new URI(this.field_104024_v) });
           }
           catch (Throwable throwable)
           {
             logger.error("Couldn't open link", throwable);
           }
         }
         this.mc.displayGuiScreen(this);
       }
      }
      
      private void renderBackGround()
      {
       GL11.glViewport(0, 0, 256, 256);
       this.mc.getTextureManager().bindTexture(this.backGround);
       GL11.glDisable(3553);
       GL11.glEnable(3553);
       GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
       Tessellator tessellator = Tessellator.instance;
       tessellator.startDrawingQuads();
       GL11.glTexParameteri(3553, 10241, 9729);
       GL11.glTexParameteri(3553, 10240, 9729);
       tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
       int k = this.width;
       int l = this.height;
       tessellator.addVertexWithUV(0.0D, 0.0D, this.zLevel, 0.0D, 0.0D);
       tessellator.addVertexWithUV(0.0D, l, this.zLevel, 0.0D, 1.0D);
       tessellator.addVertexWithUV(k, l, this.zLevel, 1.0D, 1.0D);
       tessellator.addVertexWithUV(k, 0.0D, this.zLevel, 1.0D, 0.0D);
       tessellator.draw();
      }
      
      public void drawScreen(int x, int y, float partialTick)
      {
       GL11.glDisable(3008);
       renderBackGround();
       GL11.glEnable(3008);
       Tessellator tessellator = Tessellator.instance;
       short short1 = 274;
       int k = this.width / 2 - short1 / 2;
       byte b0 = 30;
       drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
       drawGradientRect(0, 0, this.width, this.height, 0, -2147483648);
       this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
       GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
       if (this.updateCounter < 0.0001D)
       {
         drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
         drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
         drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
         drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
         drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
       }
       else
       {
         drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
         drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
       }
       tessellator.setColorOpaque_I(-1);
       GL11.glPushMatrix();
       GL11.glTranslatef(this.width / 2 + 90, 70.0F, 0.0F);
       GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
       float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * 3.141593F * 2.0F) * 0.1F);
       f1 = f1 * 100.0F / (this.fontRendererObj.getStringWidth(this.splashText) + 32);
       GL11.glScalef(f1, f1, f1);
       drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256);
       GL11.glPopMatrix();
       String s = "Minecraft 1.7.10";
       if (this.mc.isDemo()) {
         s = s + " Demo";
       }
       List <string>brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
       for (int i = 0; i < brandings.size(); i++)
       {
         String brd = (String)brandings.get(i);
         if (!Strings.isNullOrEmpty(brd)) {
           drawString(this.fontRendererObj, brd, 2, this.height - (10 + i * (this.fontRendererObj.FONT_HEIGHT + 1)), 16777215);
         }
       }
       String s1 = "Copyright Mojang AB. Do not distribute!";
       drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);
       if ((this.field_92025_p != null) && (this.field_92025_p.length() > 0))
       {
         drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
         drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
         drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
       }
       super.drawScreen(x, y, partialTick);
      }
      
      protected void mouseClicked(int p_73864_1_, int p_73864_2_, int p_73864_3_)
      {
       super.mouseClicked(p_73864_1_, p_73864_2_, p_73864_3_);
       Object object = this.field_104025_t;
       synchronized (this.field_104025_t)
       {
         if ((this.field_92025_p.length() > 0) && (p_73864_1_ >= this.field_92022_t) && (p_73864_1_ <= this.field_92020_v) && (p_73864_2_ >= this.field_92021_u) && (p_73864_2_ <= this.field_92019_w))
         {
           GuiConfirmOpenLink guiconfirmopenlink = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true);
           guiconfirmopenlink.func_146358_g();
           this.mc.displayGuiScreen(guiconfirmopenlink);
         }
       }
      }
      }
      
      

      Merci d’avance</string>

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

        Salut,
        Quel bouton se déplace ? Possible d’avoir un screenshot ?

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

          Logiquement, il y a deux solutions à ton problème :
           - ne pas afficher l’image de fond à la taille de l’écran mais à une taille fixe et mettre un autre fond derrière ton image
           - changer la manière dont tu positionne les boutons en utilisant un pourcentage de la taille de l’écran:
              * pour la position en x : au lieux d’utiliser “this.width / 2 - 100” faire plutôt “this.width * 0.4f” (en changent 0.4 par d’autres valeurs entre 0.5 et 0, tu trouveras la valeur que tu veux)
              * pour la position en y : comme pour la position en x mais il faut utiliser this.height

          1 réponse Dernière réponse Répondre Citer 1
          • Antoine_A Hors-ligne
            Antoine_
            dernière édition par

            Merci Beaucoup LeBossMax2 problème résolue.

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

            MINECRAFT FORGE FRANCE © 2024

            Powered by NodeBB