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

    Résolu Problèmes pour centrer mon GUI

    1.7.x
    1.8
    2
    5
    457
    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.
    • A
      Augstus dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • Superloup10
        Superloup10 Modérateurs dernière édition par

        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 réponse Dernière réponse Répondre Citer 0
        • A
          Augstus dernière édition par

          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 réponse Dernière réponse Répondre Citer 0
          • Superloup10
            Superloup10 Modérateurs dernière édition par 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 réponse Dernière réponse Répondre Citer 0
            • A
              Augstus dernière édition par

              Merci encore! Problème résolu 🙂

              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