Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

  • Annonces

    • Pskyco

      Bukkit France passe sous Discord !   02/20/16

      Bukkit France est désormais passé sur Discord, au revoir donc notre vieux Teamspeak ! Téléchargez le client et venez nous rejoindre sur notre salon en suivant les instructions suivantes.
      M-à-j du 25/02/2017 : Désormais, seuls les comptes actifs sur le forum se verront donner l'accès au Discord, ce dernier n'est pas une plateforme d'aide de la même manière que le chat.
Dow1t

MCP 903 - GL11 problème de render

11 messages dans ce sujet

Version: 1.7.2 MCP903

IDE: Eclipse

Problème rencontré: Problème de render (drawString)

Explication du problème:

    Bonjour à tous, à la demande d'un ami, je lui ai créer quelques render spéciaux dans le guiInGame comme les coordonnée du KOTH, le toggleSprint, etc...

    J'ai voulu faire celui du combat aussi. Je m'explique, une fois tapé, un joueur verra affiché sur son écran, une épée en bois avec écrit: 00:30 donc, le temps de combat.

    J'ai créer cette méthode qui s'appelle combatHUD, la voici:

 

private void combatHUD() {
    	ScaledResolution scaledResolution = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight);
    	int width = scaledResolution.getScaledWidth();
    	int height = scaledResolution.getScaledHeight();
    	FontRenderer var8 = mc.fontRenderer;
    	
    	ItemStack golden_apple = new ItemStack(Item.getItemById(322), 1);
    	ItemStack wood_sword = new ItemStack(Item.getItemById(268), 1);
    	ItemStack ender_pearl = new ItemStack(Item.getItemById(368), 1);
    	
    	int z = 1;
    	
		if(this.mc.combatUtils.isInCombat()) {
			var8.drawStringWithShadow("00:" + ((this.timeCombat / 20) < 10 ? "0" + this.timeCombat / 20  : "" + this.timeCombat / 20), width / 2 + 120, height + 6 - 20 * z, 5635925);
			itemRenderer.renderItemIntoGUI(var8, this.mc.getTextureManager(), wood_sword, width / 2 + 100, height + 4 - 20 * z);     
			GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
			z++;
		}
		if(!this.mc.combatUtils.canUseApple) {
			var8.drawStringWithShadow("00:" + ((this.timeApple / 20) < 10 ? "0" + this.timeApple / 20  : "" + this.timeApple / 20), width / 2 + 120, height + 6 - 20 * z, 5635925);
			itemRenderer.renderItemIntoGUI(var8, this.mc.getTextureManager(), golden_apple, width / 2 + 100, height + 4 - 20 * z);
			GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
			z++;
		}
		
		if(!this.mc.combatUtils.canUseEnder) {
			var8.drawStringWithShadow("00:" + ((this.timeEnder / 20) < 10 ? "0" + this.timeEnder / 20  : "" + this.timeEnder / 20), width / 2 + 120, height + 6 - 20 * z, 5635925);
			itemRenderer.renderItemIntoGUI(var8, this.mc.getTextureManager(), ender_pearl, width / 2 + 100, height + 4 - 20 * z);	
			GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
			z++;    
		}
    }

 

Mais le soucis est que quand le combatHUD n'est pas affiché, les couleurs sont normales, mais une fois affiché, tout devient grisâtre. Pour essayer de régler le problème, j'ai fais un GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

Mais j'ai toujours le même problème. Voici un screen qui vous permettra (j'espère ^_^ ) de mieux comprendre.

 

Quand le HUD n'est pas affiché:

 

1483717463-2017-01-06-16-43-37.png

 

 

Qaund le HUD est affiché:

 

 
1483717463-2017-01-06-16-43-51.png

 

 

Encore un grand merci :D

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Et que ce passe-t-il si tu ne met pas le (code ci dessous, bug portable) si c'est juste pour mettre le string en rouge, tu peux déléguer cette tâche à drawString en utilisant les codes couleurs  basique "§a" par exemple

GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai toujours le même problème sans le glColor :(

 

Merci de ta réponse 

Partager ce message


Lien à poster
Partager sur d’autres sites

Donc ce sont tous les drawStringWithShadow qui causent le problème, ou renderItemIntoGUI?

Si tu n'as aucun appel vers GL11.* et que le problème persiste le titre est pas vraiment correct je pense.

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet, l'erreur vient de renderItemIntoGUI(); Quand j'enlève l'item tout s'affiche comme il faut mais quand je l'ajoute ça redevient grisâtre...

 

Quelqu'un aurait une solution pour régler ce problème? :) Car j'ai trouver sur un sujet, un code de @Dermenslof qui permet de faire un rendu d'item sur un gui mais celle ci aussi le donne des couleurs grisâtre :(

 

 private void drawItemInToScreen(ItemStack is, int x, int y, float par3, boolean overlay)
    {
    	if (is != null)
    	{
    	    float an = (float)is.animationsToGo - par3;
            if (an > 0.0F)
            {
            	GL11.glPushMatrix();
                float dec = 1.0F + an / 5.0F;
                GL11.glTranslatef((float)(x + 8), (float)(y + 12), 0.0F);
                GL11.glScalef(1.0F / dec, (dec + 1.0F) / 2.0F, 1.0F);
                GL11.glTranslatef((float)(-(x + 8)), (float)(-(y + 12)), 0.0F);
            }
            itemRenderer.renderItemAndEffectIntoGUI(this.mc.fontRenderer, this.mc.getTextureManager(), is, x, y);
            if (an > 0.0F)
                GL11.glPopMatrix();
            if (is.hasEffect())
            {
                OpenGlHelper.glBlendFunc(770, 771, 1, 0);
                // si OpenGlHelper n'existe pas met GL11.glBlendFunc(770, 771);
                GL11.glDepthMask(true);
                GL11.glEnable(GL11.GL_LIGHTING);
                GL11.glDepthFunc(GL11.GL_LEQUAL);
            }
            if (overlay)
            	itemRenderer.renderItemOverlayIntoGUI(this.mc.fontRenderer, this.mc.getTextureManager(), is, 16, y); // Même chose qu'au dessus!
    	}
    }

 

Partager ce message


Lien à poster
Partager sur d’autres sites

UP svp j'ai toujours le même soucis avec le itemRenderer

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as accès à la source de "renderItemIntoGUI"? Tu as peut être moyen de trouver ce qui cause le soucis avec

Partager ce message


Lien à poster
Partager sur d’autres sites

Quand je draw l'item à une autre coordonnée, je n'ai plus ce bug

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) (modifié)

c'est un probleme connu de lightning. les version 1.7.X de mc sont buggés niveau rendu
j'ai pas de workspace de pret la mais si tu veut on peut se faire un petit teamviewer et on donnera la reponse ici

Modifié par Dermenslof
1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) (modifié)

Pas de problème, je l'installe et je te mp avec les identifiants ici ou sur discord dès que je reviens des cours :)

un grand merci :)

Modifié par Dow1t

Partager ce message


Lien à poster
Partager sur d’autres sites

Après un moment de recherche j'ai trouvé la solution ! 

 

Je vous la poste demain. Il suffit de disable le lightning avec gl11

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.