MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Créer un Gui Overlay

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    14 Messages 3 Publieurs 3.1k Vues 1 Watching
    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.
    • bin4r1sB Hors-ligne
      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
      • robin4002R Hors-ligne
        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
        • bin4r1sB Hors-ligne
          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
          • robin4002R Hors-ligne
            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
            • bin4r1sB Hors-ligne
              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
              • bin4r1sB Hors-ligne
                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
                • robin4002R Hors-ligne
                  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
                  • bin4r1sB Hors-ligne
                    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
                    • bin4r1sB Hors-ligne
                      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
                      • robin4002R Hors-ligne
                        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
                        • bin4r1sB Hors-ligne
                          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
                          • robin4002R Hors-ligne
                            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
                            • jglrxavpokJ Hors-ligne
                              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
                              • bin4r1sB Hors-ligne
                                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
                                ContactMentions Légales

                                MINECRAFT FORGE FRANCE © 2024

                                Powered by NodeBB