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

    Résolu Créer un Gui Overlay

    1.7.x
    1.7.10
    3
    14
    2943
    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.
    • bin4r1s
      bin4r1s dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

          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 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

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

                Up, une idée ?

                Mes mods:

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

                  Via un Tessellator ?

                  1 réponse Dernière réponse Répondre Citer 0
                  • bin4r1s
                    bin4r1s dernière édition par

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

                      Up, help svp

                      Mes mods:

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

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

                        1 réponse Dernière réponse Répondre Citer 0
                        • bin4r1s
                          bin4r1s dernière édition par

                          ça ne change rien 😞

                          Mes mods:

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

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

                            1 réponse Dernière réponse Répondre Citer 0
                            • jglrxavpok
                              jglrxavpok Modérateurs dernière édition par

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

                                Un grand merci, ça marche 🙂

                                Sujet Résolu.

                                Mes mods:

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