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

    Solved Créer un Gui Overlay

    1.7.x
    1.7.10
    3
    14
    2677
    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.
    • bin4r1s
      bin4r1s last edited by

      Bonjour,
      Alors voilà, j’ai voulu créer un Gui Overlay. J’ai donc cherché dans les classes de Minecraft et ai vu la classe GuiIngame. Voyant que GuiForgeIngame héritait de cette classe, et que visiblement le code de rendu de l’interface utilisateur était présent, j’ai créé une class GuiCustomOverlay et ai extend de GuiIngame. Seulement voilà, je ne vois pas trop comment le dessiner (appeler le GUI).

      J’essaie d’utiliser l’event RenderGameOverlay, mais je ne vois quel code utiliser.

      Pouvez-vous éclairer ma lanterne ?

      Mes mods:

      • New Ores
      • More Dragons
      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        Salut,
        Il ne faut pas créer une classe extends GuiForgeIngame, il faut entièrement passer l’event RenderGameOverlay. Tu veux faire quoi exactement ?

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

          Faire un rendu de progress bar (ça je m’en chargerai avec OpenGL et les magnifiques glVertex). Je viens aussi d’essayer quelque chose, mais ça me change la couleur du curseur (drôle mais bon…)

          Mes mods:

          • New Ores
          • More Dragons
          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

            En effet cette event est capricieux, ça cause des problèmes.
            Ajoute ces deux conditions :
            https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/main/event/RenderEvent.java#L34-L39
            Normalement ça règlera le problème.

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

              Ah merci je teste 🙂

              PS: Dans ce code, au lieu de désactiver puis réactiver  les fonctions de LWJGL, il suffit de se servir des GL11.glPushMatrix() et GL11.glPopMatrix() non ?

              EDIT :
              J’essaie de dessiner avec LWJGL mais ça marche pas 😞 :

              
              int mX = event.resolution.getScaledWidth();
              
                          int mY = event.resolution.getScaledHeight();
                          GL11.glPushMatrix();
                          GL11.glEnable(GL11.GL_BLEND);
                          GL11.glColor4f(0, (1/255)*100, 1.0F, 1.0F);
                          GL11.glDisable(GL11.GL_LIGHTING);
                          GL11.glDisable(GL11.GL_DEPTH_TEST);
                          GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
              
                          GL11.glBegin(GL11.GL_QUADS);
                          {
                          GL11.glVertex2f(100, 0);
                          GL11.glVertex2f(100, 10);
                          GL11.glVertex2f(0, 10);
                          GL11.glVertex2f(0, 0);
                          }
                          GL11.glEnd();
                          GL11.glPopMatrix();
              
              

              Mes mods:

              • New Ores
              • More Dragons
              1 Reply Last reply Reply Quote 0
              • bin4r1s
                bin4r1s last edited by

                Up, une idée ?

                Mes mods:

                • New Ores
                • More Dragons
                1 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                  Via un Tessellator ?

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

                    J’ai essayé mais ça marchait pas. Je vais réessayer au cas où mais bon…

                    EDIT :
                    Je confirme, ça ne marche pas, mais le code s’exécute (System.out.println).

                    Code :

                    
                    @SubscribeEvent
                    
                    public void onRenderGameOverlayEvent(RenderGameOverlayEvent event)
                    {
                          if(event.isCancelable() || event.type != ElementType.EXPERIENCE)
                          { }
                          else
                          {
                                int mX = event.resolution.getScaledWidth();
                                int mY = event.resolution.getScaledHeight();
                                GL11.glPushMatrix();
                                GL11.glEnable(GL11.GL_BLEND);
                                GL11.glColor3f(0, (1/255)*100, 1.0F);
                                GL11.glDisable(GL11.GL_LIGHTING);
                                GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                    
                                Tessellator tess = Tessellator.instance;
                                tess.startDrawingQuads();
                                {
                                      tess.addVertex(0, 0, 0);
                                      tess.addVertex(0, 30, 0);
                                      tess.addVertex(100, 30, 0);
                                      tess.addVertex(100, 0, 0);
                                }
                                tess.draw();
                                System.out.println("Test ---------");
                                GL11.glPopMatrix();
                          }
                    }
                    
                    

                    Mes mods:

                    • New Ores
                    • More Dragons
                    1 Reply Last reply Reply Quote 0
                    • bin4r1s
                      bin4r1s last edited by

                      Up, help svp

                      Mes mods:

                      • New Ores
                      • More Dragons
                      1 Reply Last reply Reply Quote 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                        Essaye sans la ligne             GL11.glPushMatrix(); et             GL11.glPopMatrix();

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

                          ça ne change rien 😞

                          Mes mods:

                          • New Ores
                          • More Dragons
                          1 Reply Last reply Reply Quote 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                            Hum faudrait attendre le message de @xavpok ou quelqu’un d’autre qui s’y connait plus en openGL.

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

                              Premierement, tu donnes juste des coordonnees xyz avec tess.addVertex, or sans coordonees uv (pareil que 0,0), OpenGL va charger le pixel à 0,0 sur la texture. Etant donné que tu es en olein milieu d’un rendu, la texture a surement un pixel transparent à 0,0

                              Deuxiement, et là c’est plus de la stabilité qu’autre chose, essaie de mettre des glDisable après tes appels quand tu fais des glEnable avant

                              Sent from my GT-I9000 using Tapatalk 2

                              Modérateur sur MFF. 
                              Mon Github: http://github.com/jglrxavpok
                              Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                                Un grand merci, ça marche 🙂

                                Sujet Résolu.

                                Mes mods:

                                • New Ores
                                • More Dragons
                                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