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

    Solved Problèmes pour centrer mon GUI

    1.7.x
    1.8
    2
    5
    272
    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.
    • A
      Augstus last edited by

      Bonjour, je n’arrive pas à centrer mon GUI au milieu de l’écran. Tout du moins j’y suis arrivé par tâtonnement mais du coup il ne s’adapte qu’à ma résolution d’écran, et non à toutes les autres.

      Pourriez vous me venir en aide?

      Voilà la classe de mon GUI :

      public class GuiTasseThe extends GuiScreen
      {
          int guiWidth = 510;
          int guiHeight = 446;
          
          @Override
          public void drawScreen(int x, int y, float ticks)
          {
              ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayWidth);
      
              int backX = sr.getScaledWidth();
              int backY = sr.getScaledHeight();
              
              int guiX = (width - guiWidth) / 2;
              int guiY = (height - guiHeight) / 2;
              GL11.glColor4f(1, 1, 1, 1);
              drawDefaultBackground();
              mc.renderEngine.bindTexture(new ResourceLocation(WizardingMod.MODID, "textures/gui/guiTasseThe.png"));
              drawTexturedModalRect(backX / 1.48F, backY / 6F, 0, 0, guiWidth / 2, guiHeight / 2);
              
              super.drawScreen(x, y, ticks);
          }
      }
      

      Merci d’avance pour votre aide!
      Bonne journée

      1 Reply Last reply Reply Quote 0
      • Superloup10
        Superloup10 Modérateurs last edited by

        Pour être situé au centre de n’importe quelle interface, il suffit de faire width / 2 et height / 2, ce sont des calculs qui ne doivent jamais changer d’ordre, ensuite, tu as juste à faire width / 2 - 50 pour avoir un décalage de 50 pixels à gauche du centre.

        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

        1 Reply Last reply Reply Quote 0
        • A
          Augstus last edited by

          Merci beaucoup! J’ai remanié la classe du GUI pour le centrer mais le souci apparaît 4 fois au lieu d’1. Je précise que mon GUI fait 510x446 et ma texture fait 512x512.
          Voici ma classe :

          public class GuiTasseThe extends GuiScreen
          {
              int guiWidth = 510;
              int guiHeight = 446;
              
              @Override
              public void drawScreen(int x, int y, float ticks)
              {
                  int guiX = (width - guiWidth) / 2;
                  int guiY = (height - guiHeight) / 2;
                  GL11.glColor4f(1, 1, 1, 1);
                  drawDefaultBackground();
                  mc.renderEngine.bindTexture(new ResourceLocation(WizardingMod.MODID, "textures/gui/guiTasseThe.png"));
                  drawTexturedModalRect(guiX, guiY, 0, 0, guiWidth, guiHeight);
                  
                  super.drawScreen(x, y, ticks);
              }
          }
          
          1 Reply Last reply Reply Quote 0
          • Superloup10
            Superloup10 Modérateurs last edited by Superloup10

            int guiX = (width - guiWidth) / 2;
            int guiY = (height - guiHeight) / 2;
            

            Ce n’est pas le bon calcul, il faudrait plutôt faire :

            int guiX = width / 2 - guiWidth;
            int guiY = height / 2 - guiHeight;
            

            Tu devrais obtenir un résultat plus proche de ce que tu veux, par contre, il faudra peut-être modifier la valeur de guiWidth et guiHeight.

            Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

            Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

            1 Reply Last reply Reply Quote 0
            • A
              Augstus last edited by

              Merci encore! Problème résolu 🙂

              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