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

    Problème affichage texture

    Sans suite
    1.6.4
    3
    10
    2269
    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.
    • J
      jesuismoi last edited by

      Bonjour,

      J’ai un soucis avec l’affichage d’une texture sur l’écran de jeu, en effet les couleurs ne sont pas correct.
      Voici à quoi ressemble la texture :

      et le rendu que j’ai :

      Voici le code que j’utilise :

      %(#000000)[ @SideOnly(Side.CLIENT)
      public void drawNewElement(RenderGameOverlayEvent.Post event) {
      
      Minecraft mc = Minecraft.getMinecraft();
      Utilitaire utilitaire = new Utilitaire(mc);
      
             ScaledResolution scaledresolution = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight);
      int k = scaledresolution.getScaledWidth();
             int l = scaledresolution.getScaledHeight();
      
             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
             GL11.glEnable (GL11.GL_BLEND);
             mc.getTextureManager().bindTexture(guiCustom);
      
             //affichage de la hotbar
             InventoryPlayer inventoryplayer = mc.thePlayer.inventory;
             this.zLevel = -90.0F;
             this.drawTexturedModalRect(k / 2-112, l - 22, 0, 102, 235, 22);
      
             //affichage des item
             for (int i1 = 0; i1 < 9; ++i1)
             {
                 int j1 = k / 2 - 72 + i1 * 20 + 2;
                 int k1 = l - 16 - 3;
                 this.renderInventorySlot(i1, j1, k1, 0.6F, mc);
             }
             RenderHelper.disableStandardItemLighting();
             GL11.glDisable(GL12.GL_RESCALE_NORMAL);
             this.mc.mcProfiler.endSection();
      
             mc.getTextureManager().bindTexture(guiCustom);
      
             //affichage curseur sélection
             this.drawTexturedModalRect(k / 2 - 64 - 1 + inventoryplayer.currentItem * 20, l - 4 - 1, 23, 57, 9, 4);      
      }]
      

      Avez vous une idée ?

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

        Salut,
        Sans la boucle for en dessous de //affichage des item ça donne quoi ?

        1 Reply Last reply Reply Quote 0
        • J
          jesuismoi last edited by

          @‘robin4002’:

          Salut,
          Sans la boucle for en dessous de         //affichage des item ça donne quoi ?

          Pareil 😞

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

            Alors il y a plusieurs problèmes, déjà ce code est appelé plusieurs fois à chaque draw de la fenêtre, il est tout le temps appelé que ce soit au moment de la vie, de la croix pour viser, ou de la hotbar, ensuite tu ne cancel pas l’event vanilla et tu as à la fin “this.mc.mcProfiler.endSection();” mais aucun code qui commence une section au début, donc retire ça.
            Ensuite pour le problème que tu as essaye de mettre “RenderHelper.enableStandardItemLighting();” avant le premier bind de texture.

            Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

            1 Reply Last reply Reply Quote 0
            • J
              jesuismoi last edited by

              @‘AymericRed’:

              Alors il y a plusieurs problèmes, déjà ce code est appelé plusieurs fois à chaque draw de la fenêtre, il est tout le temps appelé que ce soit au moment de la vie, de la croix pour viser, ou de la hotbar, ensuite tu ne cancel pas l’event vanilla et tu as à la fin “this.mc.mcProfiler.endSection();” mais aucun code qui commence une section au début, donc retire ça.
              Ensuite pour le problème que tu as essaye de mettre “RenderHelper.enableStandardItemLighting();” avant le premier bind de texture.

              Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

              Je cancel les event juste au dessus :

              public void clean(RenderGameOverlayEvent.Pre event) {
              Minecraft mc = Minecraft.getMinecraft();
              if (event.type == RenderGameOverlayEvent.ElementType.ARMOR) {
              //on efface ?
              event.setCanceled(true);
              }
              if(event.type == RenderGameOverlayEvent.ElementType.EXPERIENCE) {
              event.setCanceled(true);
              }
              if(event.type == RenderGameOverlayEvent.ElementType.FOOD) {
              event.setCanceled(true);
              }
              if(event.type == RenderGameOverlayEvent.ElementType.HEALTH) {
              event.setCanceled(true);
              }
              if(event.type == RenderGameOverlayEvent.ElementType.HOTBAR) {
              event.setCanceled(true);
              }
              
              }
              

              Pour l’appel à chaque draw de la fenêtre je vois pas trop comment faire car quand je rajoute par exemple “if(event.type == RenderGameOverlayEvent.ElementType.HOTBAR)” mes éléments ne s’affichent plus.

              Pour “RenderHelper.enableStandardItemLighting();” il n’y a aucun changement 😞

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

                Ah d’accord ^^
                Bah du coup c’est pas un problème comme tu cancel tout c’est pas draw à chaque fois, mais sinon le if(c’est la hotbar) marche pas comme il est cancel juste avant.

                Essaye de mettre cela (RenderHelper.enableStandardItemLighting();) juste avant le for pour voir, sinon je comparerais avec mon code demain si toujours pas résolu 🙂

                Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                1 Reply Last reply Reply Quote 0
                • J
                  jesuismoi last edited by

                  @‘AymericRed’:

                  Ah d’accord ^^
                  Bah du coup c’est pas un problème comme tu cancel tout c’est pas draw à chaque fois, mais sinon le if(c’est la hotbar) marche pas comme il est cancel juste avant.

                  Essaye de mettre cela (RenderHelper.enableStandardItemLighting();) juste avant le for pour voir, sinon je comparerais avec mon code demain si toujours pas résolu 🙂

                  Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                  Quand je le mets avant le for c’est toujours pareil. Mais même quand j’enlève totalement ce qui est dans le for la texture de la hotbar s’affiche avec les carrés noirs.

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

                    Alors selon mon code et celui de Minecraft, voici la structure de code pour le rendu d’une hotbar :

                           GL11.glEnable(GL11.GL_BLEND);
                           GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                           GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                    
                           InventoryPlayer inv = mc.thePlayer.inventory;
                    //Rendu de l'image de la hotbar
                    
                           GL11.glDisable(GL11.GL_BLEND);
                           GL11.glEnable(GL12.GL_RESCALE_NORMAL);
                           RenderHelper.enableGUIStandardItemLighting();
                    
                    //Rendu des items dans les slots (le for)
                    
                           RenderHelper.disableStandardItemLighting();
                           GL11.glDisable(GL12.GL_RESCALE_NORMAL);
                    

                    Il fallait donc bien utiliser le RenderHelper sauf que je t’ai donné “RenderHelper.enableStandardItemLighting();” au lieu de “RenderHelper.enableGUIStandardItemLighting();” mais il y aussi des fonctions de blend qui peuvent améliorer le rendu.

                    Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                    AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                    Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                    1 Reply Last reply Reply Quote 0
                    • J
                      jesuismoi last edited by

                      @‘AymericRed’:

                      Alors selon mon code et celui de Minecraft, voici la structure de code pour le rendu d’une hotbar :

                             GL11.glEnable(GL11.GL_BLEND);
                             GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                      
                             InventoryPlayer inv = mc.thePlayer.inventory;
                      //Rendu de l'image de la hotbar
                      
                             GL11.glDisable(GL11.GL_BLEND);
                             GL11.glEnable(GL12.GL_RESCALE_NORMAL);
                             RenderHelper.enableGUIStandardItemLighting();
                      
                      //Rendu des items dans les slots (le for)
                      
                             RenderHelper.disableStandardItemLighting();
                             GL11.glDisable(GL12.GL_RESCALE_NORMAL);
                      

                      Il fallait donc bien utiliser le RenderHelper sauf que je t’ai donné “RenderHelper.enableStandardItemLighting();” au lieu de “RenderHelper.enableGUIStandardItemLighting();” mais il y aussi des fonctions de blend qui peuvent améliorer le rendu.

                      Salut, merci pour ta réponse mais j’ai fait exactement ce que tu as dis mais j’ai toujours le même problème 😞

                      1 Reply Last reply Reply Quote 0
                      • J
                        jesuismoi last edited by

                        up, personne n’a la solution ?

                        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