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

    Barre de défilement

    Sans suite
    1.7.10
    3
    5
    1759
    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.
    • DiabolicaTrix
      DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

      Bonjour, je voudrais créer une barre de défilement comme celle du menu des options graphiques, la mince. Donc, j’ai fouillé un peu dans les codes et j’ai trouvé quelques classe: GuiListExtended et GuiOptionsRowList. Le seul problème est que le constructeur de GuiOptionsRowList prend un Enum d’options en paramètre. J’ai donc essayé en recréant la classe et en changeant ce que j’avais besoin, mais sans succès car le code est adapté pour un Enum, mais moi ce serait préférablement une ArrayList.

      Mes codes:

      GuiInv (la classe où je veux mettre la scroll bar):

      package fr.altiscraft.altiscraft.common;
      
      import java.util.ArrayList;
      
      import org.lwjgl.opengl.GL11;
      
      import diabolicatrix.project.EEPRestrained;
      import diabolicatrix.project.GuiGangMenu;
      import diabolicatrix.project.InventoryManager;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.gui.GuiOptions;
      import net.minecraft.client.gui.GuiScreen;
      import net.minecraft.client.gui.GuiTextField;
      import net.minecraft.client.gui.ScaledResolution;
      import net.minecraft.client.resources.I18n;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.util.ChatComponentText;
      import net.minecraft.util.ResourceLocation;
      
      public class GuiInv extends GuiScreen {
      
      int guiWidth = 350;
      int guiHeight = 200;
      
      public static ArrayList <string>list = new ArrayList<string>();
      
      private EntityPlayer player = Minecraft.getMinecraft().thePlayer;
      
      private GuiTextField text;
      
      @Override
      public void drawScreen(int x, int y, float ticks) {
      EEPRestrained prop = EEPRestrained.get(player);
      int guix = (width - guiWidth) / 2;
      int guiy = (height - guiHeight) / 2;
      GL11.glColor4f(1, 1, 1, 1);
      mc.renderEngine.bindTexture(new ResourceLocation(ModAltisCraft.MODID, "textures/gui/Fondinv.png"));
      drawTexturedModalRect(guix, guiy, 0, 0, guiWidth - 3, 15);
      mc.renderEngine.bindTexture(new ResourceLocation(ModAltisCraft.MODID, "textures/gui/BackGround.png"));
      drawTexturedModalRect(guix, guiy + 16, 0, 0, guiWidth - 3, 150);
      mc.renderEngine.bindTexture(new ResourceLocation(ModAltisCraft.MODID, "textures/gui/FondClair.png"));
      drawTexturedModalRect(guix + 220, guiy + 35, 0, 0, 125, 100);
      mc.renderEngine.bindTexture(new ResourceLocation(ModAltisCraft.MODID, "textures/gui/FondBAC.png"));
      drawTexturedModalRect(guix + 5, guiy + 20, 0, 0, 90, 15);
      mc.renderEngine.bindTexture(new ResourceLocation(ModAltisCraft.MODID, "textures/gui/FondBAC.png"));
      drawTexturedModalRect(guix + 102, guiy + 20, 0, 0, 110, 15);
      mc.renderEngine.bindTexture(new ResourceLocation(ModAltisCraft.MODID, "textures/gui/FondBAC.png"));
      drawTexturedModalRect(guix + 220, guiy + 20, 0, 0, 125, 15);
      fontRendererObj.drawString("Menu du joueur", guix + 5, guiy + 5, 0xFFFFFF);
      fontRendererObj.drawString("" + prop.getMoney() + "$", guix + 15, guiy + 45, 0xFFFFFF);
      fontRendererObj.drawString("" + prop.getCash() + "$", guix + 15, guiy + 55, 0xFFFFFF);
      fontRendererObj.drawString(I18n.format("stat.money", new Object[0]), guix + 7, guiy + 25, 0xFFFFFF);
      fontRendererObj.drawString("Licenses", guix + 105, guiy + 25, 0xFFFFFF);
      
      InventoryManager.getItems(Minecraft.getMinecraft().thePlayer.inventory);
      
      int pos = 0;
      for (int i = 0; i < list.size(); i++) {
      fontRendererObj.drawString(list.get(i), guix + 223, guiy + 38 + pos, 0xFFFFFF);
         pos += 10;
      }
      
      fontRendererObj.drawString("Objets Actuels", guix + 222, guiy + 25, 0xFFFFFF);
      fontRendererObj.drawString("Poids: 0 / 64", guix + 282, guiy + 5, 0xFFFFFF);
      super.drawScreen(x, y, ticks);
      }
      
      public void initGui() {
      int guiX = (this.width - guiWidth) / 2;
      int guiY = (this.height - guiHeight) / 2;
      this.text = new GuiTextField(this.fontRendererObj, this.width / 2 - 68, this.height / 2 - 46, 140, 20);
      text.setText("Montant");
      buttonList.clear();
      buttonList.add(new GuiAC4(0, guiX, guiY + 167, "FERMER"));
      buttonList.add(new GuiAC4(1, guiX, guiY + 188, "SYNC DATA"));
      buttonList.add(new GuiAC4(2, guiX + 69, guiY + 167, "PARAMETRES"));
      buttonList.add(new GuiAC4(3, guiX + 69, guiY + 188, "STAFF"));
      buttonList.add(new GuiAC4(4, guiX + 139, guiY + 167, "MON GANG"));
      buttonList.add(new GuiAC4(5, guiX + 139, guiY + 188, "STATISTIQUES"));
      buttonList.add(new GuiAC4(6, guiX + 209, guiY + 167, "PORTE-CLES"));
      buttonList.add(new GuiAC4(7, guiX + 209, guiY + 188, "BOURSE"));
      buttonList.add(new GuiAC4(8, guiX + 279, guiY + 167, "TELEPHONE"));
      buttonList.add(new GuiAC4(9, guiX + 279, guiY + 188, "INFORMATIONS"));
      super.initGui();
      }
      
      protected void keyTyped(char par1, int par2) {
      super.keyTyped(par1, par2);
      this.text.textboxKeyTyped(par1, par2);
      }
      
      protected void mouseClicked(int x, int y, int btn) {
      super.mouseClicked(x, y, btn);
      this.text.mouseClicked(x, y, btn);
      }
      
      public void updateScreen() {
      super.updateScreen();
      this.text.updateCursorCounter();
      }
      
      @Override
      protected void actionPerformed(GuiButton btn) {
      if (btn.id == 0) {
      Minecraft.getMinecraft().displayGuiScreen(null);
      }
      
      if (btn.id == 1) {
      Minecraft.getMinecraft().thePlayer
      .addChatMessage(new ChatComponentText((I18n.format("sync.data") + I18n.format("sync.data2"))));
      Minecraft.getMinecraft().theWorld.setBlock(0, 59, 0, Blocks.redstone_block);
      }
      
      if (btn.id == 2) {
      this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
      }
      
      if (btn.id == 3) {
      Minecraft.getMinecraft().displayGuiScreen(new GuiStaff());
      }
      
      if (btn.id == 4) {
      Minecraft.getMinecraft().displayGuiScreen(new GuiGangMenu());
      }
      
      if (btn.id == 5) {
      Minecraft.getMinecraft().displayGuiScreen(new GuiStats());
      }
      
      if (btn.id == 6) {
      Minecraft.getMinecraft().displayGuiScreen(new GuiKey());
      }
      
      if (btn.id == 7) {
      Minecraft.getMinecraft().displayGuiScreen(new GuiBourse());
      }
      
      if (btn.id == 8) {
      Minecraft.getMinecraft().displayGuiScreen(new GuiTel());
      }
      
      if (btn.id == 9) {
      Minecraft.getMinecraft().displayGuiScreen(new GuiInformations());
      }
      
      }
      
      @Override
      public boolean doesGuiPauseGame() {
      return false;
      }
      }
      

      Screenshots:
      :::

      :::

      Mes test (sur un autre gui):

      package diabolicatrix.project;
      
      import java.util.ArrayList;
      
      import org.lwjgl.input.Keyboard;
      import org.lwjgl.input.Mouse;
      import org.lwjgl.opengl.GL11;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.GuiScreen;
      import net.minecraft.client.gui.inventory.GuiContainerCreative;
      import net.minecraft.client.renderer.InventoryEffectRenderer;
      import net.minecraft.inventory.ContainerChest;
      import net.minecraft.inventory.IInventory;
      import net.minecraft.inventory.InventoryBasic;
      import net.minecraft.item.Item;
      import net.minecraft.util.ResourceLocation;
      
      public class GuiTest extends GuiScreen
      {
          private boolean needsScrollBars;
          private float currentScroll = 0; 
          private boolean isScrolling;
          private boolean wasClicking;
          private boolean mouseClicked;
          private ArrayList invList;
          private boolean hasScrollBar = true;
      
          private int xSize = 194;
          private int ySize = 135;
      
          public GuiTest()
          {
              this.allowUserInput = true;
          }
      
          public void initGui()
          {
              super.initGui();
              Keyboard.enableRepeatEvents(true);
      
          }
      
          public void onGuiClosed()
          {
              super.onGuiClosed();
              Keyboard.enableRepeatEvents(false);
          }
      
          public void drawScreen(int par1, int par2, float par3)
          {
            /*  boolean flag = Mouse.isButtonDown(0);
              int guiLeft = (this.width - this.xSize) / 2;
              int guiTop = (this.height - this.ySize) / 2;
              int k = guiLeft;
              int l = guiTop;
              int i1 = k + 175;
              int j1 = l + 18;
              int k1 = i1 + 12;
              int l1 = j1 + 90;
      
              if (!this.wasClicking && flag && par1 >= i1 && par2 >= j1 && par1 < k1 && par2 < l1)
              {
                  this.isScrolling = this.needsScrollBars;
              }
      
              if (!flag)
              {
                  this.isScrolling = false;
              }
      
              this.wasClicking = flag;
      
              if (this.isScrolling)
              {
                  this.currentScroll = ((float)(par2 - j1) - 7.5F) / ((float)(l1 - j1) - 15.0F);
      
                  if (this.currentScroll < 0.0F)
                  {
                      this.currentScroll = 0.0F;
                  }
      
                  if (this.currentScroll > 1.0F)
                  {
                      this.currentScroll = 1.0F;
                  }
      
                  System.out.println("Scrolling!");
              }
              this.drawGuiContainerBackgroundLayer(par3, par1, par2);
              */
          GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
               this.mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/creative_inventory/tab_items.png"));
               int guiX = (this.width - this.ySize) / 2;
               int guiY = (this.height - this.ySize) / 2;
               this.drawTexturedModalRect(guiX, guiY, 0, 0, this.xSize, this.ySize);
               int max = this.xSize + 175;
               int min = this.xSize + 18;
               int width = min + 90;
               if (this.needsScrollBars)
               {
                   this.drawTexturedModalRect(max, min + (int)((float)(width - min - 17) * this.currentScroll), 0,198, 12, 15);
               }
               else
               {
                   this.drawTexturedModalRect(max, min, 12, 198, 12, 15);
               }
              super.drawScreen(par1, par2, par3);
          }
      
          public void handleMouseInput()
          {
              super.handleMouseInput();
              int i = Mouse.getEventDWheel();
              int m = Mouse.getEventButton();
      
              if (i != 0 && this.needsScrollBars())
              {
                  int j = 54 / 9 - 5 + 1;
      
                  if (i > 0)
                      i = 1;
                  if (i < 0)
                      i = -1;
      
                  this.currentScroll = (float)((double)this.currentScroll - (double)i / (double)j);
      
                  if (this.currentScroll < 0.0F)
                  {
                      this.currentScroll = 0.0F;
                  }
                  if (this.currentScroll > 1.0F)
                  {
                      this.currentScroll = 1.0F;
                  }
      
                  System.out.println("Scrolling 2!");
              }
          }
      
          @Override
          protected void mouseClicked(int x, int y, int z) {
          System.out.println("x: " + x + " y: " + y + " z: " + z);
          super.mouseClicked(x, y, z);
          }
      
          private boolean needsScrollBars()
          {
               /*if (((ContainerInfinityChest)this.inventorySlots).hasMoreThan1PageOfItemsInList())
                   this.needsScrollBars = true;
              else
                  this.needsScrollBars = false;
               */
               return true;
      
          }
      
          private boolean updateInv()
          {
      
              return true;
          }
      
          protected void drawGuiContainerBackgroundLayer(float f, int i, int j)
          {
      
          }
      
          public boolean displayScrollBar()
          {
              return this.hasScrollBar;
          }
      
          public boolean doesGuiPauseGame()
          {
              return false;
          }
      
      }
      ```</string></string>
      1 réponse Dernière réponse Répondre Citer 0
      • SCAREX
        SCAREX dernière édition par

        https://github.com/SCAREXgaming/Updater/blob/1.8/src/main/java/fr/scarex/updater/client/gui/GuiSlotMCVersions.java

        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
        • DiabolicaTrix
          DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

          GuiScrollingList c’est une classe de Mc?

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

            Regardes les importations : import net.minecraftforge.fml.client.GuiScrollingList;

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

              Ah effectivement, je n’avais pas pensé à regarde là, merci. Je vais essayer.

              EDIT: Donc mon code ressemble à ça:

              Mon GuiTest:

              package diabolicatrix.project;
              
              import java.util.ArrayList;
              
              import org.lwjgl.input.Keyboard;
              import org.lwjgl.input.Mouse;
              import org.lwjgl.opengl.GL11;
              
              import fr.altiscraft.altiscraft.common.GuiInv;
              import net.minecraft.client.Minecraft;
              import net.minecraft.client.gui.GuiScreen;
              import net.minecraft.client.gui.inventory.GuiContainerCreative;
              import net.minecraft.client.renderer.InventoryEffectRenderer;
              import net.minecraft.client.resources.I18n;
              import net.minecraft.inventory.ContainerChest;
              import net.minecraft.inventory.IInventory;
              import net.minecraft.inventory.InventoryBasic;
              import net.minecraft.item.Item;
              import net.minecraft.util.ResourceLocation;
              
              public class GuiTest extends GuiScreen
              {
                  private boolean needsScrollBars;
                  private float currentScroll = 0; 
                  private boolean isScrolling;
                  private boolean wasClicking;
                  private boolean mouseClicked;
                  private ArrayList invList;
                  private boolean hasScrollBar = true;
                  private GuiScrollingTest scroll;
              
                  private int xSize = 194;
                  private int ySize = 135;
              
                  public GuiTest()
                  {
                      this.allowUserInput = true;
                  }
              
                  public void initGui()
                  {
                  this.scroll = new GuiScrollingTest(40, this, 130, 90);
                  this.scroll.registerScrollButtons(GuiInv.list, 12, 13);
                      super.initGui();
              
                  }
              
                  public void drawScreen(int x, int y, float ticks)
                  {
                  this.drawDefaultBackground();
              this.scroll.drawScreen(x, y, ticks);
              super.drawScreen(x, y, ticks);
                  }
              
                  public boolean doesGuiPauseGame()
                  {
                      return false;
                  }
              
              }
              

              Mon GuiScroll:

              package diabolicatrix.project;
              
              import cpw.mods.fml.client.GuiScrollingList;
              import fr.altiscraft.altiscraft.common.GuiInv;
              import net.minecraft.client.Minecraft;
              import net.minecraft.client.renderer.Tessellator;
              
              public class GuiScrollingTest extends GuiScrollingList {
              
              private GuiTest parent;
              
              public GuiScrollingTest(int width, GuiTest parent, int left, int top) {
              super(parent.mc, width, parent.height, top, parent.height - 84, left, 20);
              this.parent = parent;
              }
              
              @Override
              protected int getSize() {
              return GuiInv.list.size();
              }
              
              @Override
              protected void elementClicked(int index, boolean doubleClick) {
              
              }
              
              @Override
              protected boolean isSelected(int index) {
              return false;
              }
              
              @Override
              protected void drawBackground() {
              
              }
              
              @Override
              protected void drawSlot(int var1, int var2, int var3, int var4, Tessellator var5) {
              }
              
              }
              
              

              Et ça donne ça:
              :::

              :::
              Mon problème vient surement du drawSlot, mais je ne comprend pas l’utilité de celui-ci. Avec son nom j’imaginais que c’était pour dessiner la list, mais Scarex dessinait un string.

              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