Résolu Faire un rendue a peut près comme un me map
-
Il faut d’abord bind la texture de l’item :
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); itemRenderer.renderIcon(0, 0, icon, 16, 16);
Et mettre 16,16 dans les derniers paramètres sinon tu vas faire le rendu de plusieurs items. Ensuite il faudra toujours modifier la taille et la position de ton item
-
Merci, mais quand je fais GL11.glScalef(1F, 1F, 1F); ce ne l’agrandit pas, quelle est la fonction pour l’agrandir?
-
Normal, si tu scale à 1, 1, 1 ça veux dire qu’il fera 1 fois la taille qu’il faisait, donc exactement la même
-
J’ai testé en remplant 1 par 10 et même resultat :
Avec 10:
Sans 10:
Merci de vis réponse. -
Envoi le code
-
Le voici ;
[font=Courier Newpackage ]fr.ph1823.MyLife.Item%(#cc7832)[; ] import net.minecraft.client.Minecraft%(#cc7832)[; ]import net.minecraft.client.gui.FontRenderer%(#cc7832)[; ] import net.minecraft.client.renderer.entity.RenderItem%(#cc7832)[; ]import net.minecraft.client.renderer.texture.DynamicTexture%(#cc7832)[; ]import net.minecraft.client.renderer.texture.TextureManager%(#cc7832)[; ] import net.minecraft.client.renderer.texture.TextureMap%(#cc7832)[; ]import net.minecraft.entity.item.EntityItem%(#cc7832)[; ]import net.minecraft.item.ItemStack%(#cc7832)[; ]import net.minecraft.nbt.NBTTagCompound%(#cc7832)[; ] import net.minecraft.util.ChatComponentText%(#cc7832)[; ]import net.minecraft.util.ResourceLocation%(#cc7832)[; ] import net.minecraftforge.client.IItemRenderer%(#cc7832)[; ]import org.lwjgl.opengl.GL11%(#cc7832)[; ] import java.util.Random%(#cc7832)[; ] %(#629755)[*/** *]%(#629755)[* * Created by ph1823 - Minecraft on 28/03/2016. *]%(#629755)[* */ *]public class IdentityTechneRender implements IItemRenderer { protected Identity model%(#cc7832)[; ] private static RenderItem *renderItem *= new RenderItem()%(#cc7832)[; ] %(#808080)[// private static DynamicTexture dyn; ] private static TextureManager *manager *= Minecraft.*getMinecraft*().getTextureManager()%(#cc7832)[; ] protected static ResourceLocation *texture *= new ResourceLocation("plants:textures/items/card.png")%(#cc7832)[; ] public IdentityTechneRender() { %(#808080)[//this.getDynamicTextureLocation() ] model = new Identity()%(#cc7832)[; ] %(#808080)[// model. ]%(#808080)[ // dyn = new DynamicTexture(16,16); ]%(#808080)[ //this.field_148241_e = this.field_148243_c.getTextureData(); ]%(#808080)[ // texture = manager.getDynamicTextureLocation("plants:textures/items/card.png", dyn); ] } %(#bbb529)[@Override ] public boolean handleRenderType(ItemStack item, ItemRenderType type) { return type == ItemRenderType.*EQUIPPED *|| type == ItemRenderType.*EQUIPPED_FIRST_PERSON*%(#cc7832)[; ] } %(#bbb529)[@Override ] public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return type == ItemRenderType.*EQUIPPED*%(#cc7832)[; ] } %(#bbb529)[@Override ] public void renderItem(ItemRenderType type, ItemStack item, Object… data) { %(#808080)[// Get icon index for the texture ] %(#808080)[ // EntityItem entItem = new EntityItem(Minecraft.getMinecraft().theWorld, 0D, 0D, 0D, item); ] String name = "Iconnue"%(#cc7832)[; ] String surname = "Inconnue"%(#cc7832)[; ] int age = 0%(#cc7832)[; ] NBTTagCompound nbt = item.getTagCompound()%(#cc7832)[; ] if (nbt != null) { age = nbt.getInteger("age")%(#cc7832)[; ] name = nbt.getString("name") != null ? nbt.getString("name") : name%(#cc7832)[; ] surname = nbt.getString("surname") != null ? nbt.getString("surname") : surname%(#cc7832)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#cc7832)[; ] FontRenderer font = Minecraft.*getMinecraft*().fontRenderer%(#cc7832)[; ] switch (type) { case *EQUIPPED*: GL11.*glTranslatef*(1F, -.5F, 0F)%(#cc7832)[; ]%(#cc7832)[ break; ] case *EQUIPPED_FIRST_PERSON*: GL11.*glTranslatef*(8F, 2F, 2F)%(#cc7832)[; ] GL11.*glRotatef*(-10F, 0F, 0F, 1F)%(#cc7832)[; ]%(#cc7832)[ break; ] default: } GL11.*glRotatef*(180F, 0F, 0F, 1F)%(#cc7832)[; ] GL11.*glScalef*(0.05F, 0.05F, 0.05F)%(#cc7832)[; ] font.drawStringWithShadow(surname,-5,5, 0xFFFFFF);%(#808080)[//Patrick ]%(#808080)[ // fontRenderer.drawStringWithShadow("Nom : " + name, 1, 5, 0xFFFFFF); ]%(#808080)[ //fontRenderer.drawStringWithShadow("Âge : " + age, 1, 10, 0xFFFFFF) ]%(#808080)[ //renderItem.renderIcon(0,0,icon,64,64); ] Minecraft.*getMinecraft*().renderEngine.bindTexture(TextureMap.*locationItemsTexture*)%(#cc7832)[; ] *renderItem*.renderIcon(0, 0, icon, 16, 16)%(#cc7832)[; ] GL11.*glScalef*(10F, 10F, 10F)%(#cc7832)[; ] } }
-
Petit rappel de comment fonction l’open gl :
- ouverture d’une matrice
- modification de la matrice
- rendu avec la matrice
- fermeture de la matrice
Sauf que toi tu modifies la matrice APRES le rendu donc ça n’a aucun effet.
-
Étonnant que ça n’a pas agrandi autre chose du jeu.
En général quand on met des GL11 n’importe où ça fait des bugs de rendu amusant -
Bonjour, je me demandé comment on pouvé changé l’image icon par un autre plus grande, merci de vos réponse
-
“l’image icon” pardon ?
Tu peux toujours agrandir la taille de l’item avec GL11.glscalef comme on l’a dit plus haut, après si tu veux utiliser une autre texture c’est simple : tu ajoutes un ResourceLocation dans ta classe et tu fais un bind de texture avec, en revanche après il faut faire le rendu ce qui est plus complexe
-
Voila, c’est le rendue que j’aimerais savoir comment on fait , désoler de m’être mal exprimé
-
Je te conseille de copier la fonction utiliser dans la classe Gui pour faire un rendu facilement
-
Bonjour quelle fonction? Il y a aucune avec “background”
-
Pourquoi est-ce qu’il y aurait background dedans ?
-
Car ca paraissait plus logique >< mais j’ai trouvée ca a la palce : drawTexturedModelRectFromIcon sauf qu’aucune variable contient les ressource il ya juste ca :
Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV((double)(p_94065_1_ + 0), (double)(p_94065_2_ + p_94065_5_), (double)this.zLevel, (double)p_94065_3_.getMinU(), (double)p_94065_3_.getMaxV()); tessellator.addVertexWithUV((double)(p_94065_1_ + p_94065_4_), (double)(p_94065_2_ + p_94065_5_), (double)this.zLevel, (double)p_94065_3_.getMaxU(), (double)p_94065_3_.getMaxV()); tessellator.addVertexWithUV((double)(p_94065_1_ + p_94065_4_), (double)(p_94065_2_ + 0), (double)this.zLevel, (double)p_94065_3_.getMaxU(), (double)p_94065_3_.getMinV()); tessellator.addVertexWithUV((double)(p_94065_1_ + 0), (double)(p_94065_2_ + 0), (double)this.zLevel, (double)p_94065_3_.getMinU(), (double)p_94065_3_.getMinV()); tessellator.draw();
-
Oui, c’est cette fonction qui dessine effectivement, il n’y a pas de question de resources car ta texture doit être appliquée avant comme avant de dessiner ton item
-
Par contre pour le getMinU() comment je fait vue que c’est avec un icon ou alors ils faut load avec une fonction spécifique l’icon?
voici le code actuel :Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV((double)(0), (double)(16), (double)this.zLevel, (double)p_94065_3_.getMinU(), (double)p_94065_3_.getMaxV()); tessellator.addVertexWithUV((double)(16), (double)(16), (double)this.zLevel, (double)p_94065_3_.getMaxU(), (double)p_94065_3_.getMaxV()); tessellator.addVertexWithUV((double)(16), (double)(0), (double)this.zLevel, (double)p_94065_3_.getMaxU(), (double)p_94065_3_.getMinV()); tessellator.addVertexWithUV((double)(0), (double)(0), (double)this.zLevel, (double)p_94065_3_.getMinU(), (double)p_94065_3_.getMinV()); tessellator.draw();
Merci de vos réponse.
-
u correspond à x sur ta texture et v correspond à y, donc remplace les getMinU() et les truc semblables car les valeurs dont tu as besoin.
-
Avant d’utiliser un tesselator il faut bind la texture.
Les textures des items et des blocs se trouvent tous sur une image commune, la fonction getMinU/V et getMaxU/V permet d’avoir les coordonnées de la texture du bloc / item sur cette image commune. -
Bonjour, je viens de testé plusieur valeur en 0 et 16 et rien (de mon côté) voic mon code :
[font=Courier Newpackage ]fr.ph1823.MyLife.Item%(#cc7832)[; ] import net.minecraft.client.Minecraft%(#cc7832)[; ]import net.minecraft.client.gui.FontRenderer%(#cc7832)[; ] import net.minecraft.client.gui.Gui%(#cc7832)[; ]import net.minecraft.client.gui.MapItemRenderer%(#cc7832)[; ]import net.minecraft.client.renderer.Tessellator%(#cc7832)[; ]import net.minecraft.client.renderer.WorldRenderer%(#cc7832)[; ]import net.minecraft.client.renderer.entity.RenderItem%(#cc7832)[; ]import net.minecraft.client.renderer.texture.DynamicTexture%(#cc7832)[; ]import net.minecraft.client.renderer.texture.TextureAtlasSprite%(#cc7832)[; ]import net.minecraft.client.renderer.texture.TextureManager%(#cc7832)[; ] import net.minecraft.client.renderer.texture.TextureMap%(#cc7832)[; ]import net.minecraft.entity.item.EntityItem%(#cc7832)[; ]import net.minecraft.item.ItemStack%(#cc7832)[; ]import net.minecraft.nbt.NBTTagCompound%(#cc7832)[; ] import net.minecraft.util.ChatComponentText%(#cc7832)[; ]import net.minecraft.util.IIcon%(#cc7832)[; ]import net.minecraft.util.ResourceLocation%(#cc7832)[; ] import net.minecraftforge.client.IItemRenderer%(#cc7832)[; ]import org.lwjgl.opengl.GL11%(#cc7832)[; ] import java.util.Random%(#cc7832)[; ] %(#629755)[*/** *]%(#629755)[* * Created by ph1823 - Minecraft on 28/03/2016. *]%(#629755)[* */ *]public class IdentityTechneRender implements IItemRenderer { protected Identity model%(#cc7832)[; ] private static RenderItem *renderItem *= new RenderItem()%(#cc7832)[; ] %(#808080)[// private static DynamicTexture dyn; ] protected float zLevel%(#cc7832)[; ] private static TextureManager *manager *= Minecraft.*getMinecraft*().getTextureManager()%(#cc7832)[; ] protected static ResourceLocation *texture *= new ResourceLocation("plants:textures/items/card1.png")%(#cc7832)[; ] public IdentityTechneRender() { %(#808080)[//this.getDynamicTextureLocation() ] model = new Identity()%(#cc7832)[; ] %(#808080)[// model. ]%(#808080)[ // dyn = new DynamicTexture(16,16); ]%(#808080)[ //this.field_148241_e = this.field_148243_c.getTextureData(); ]%(#808080)[ // texture = manager.getDynamicTextureLocation("plants:textures/items/card.png", dyn); ]%(#808080)[//Gui.class ] } %(#bbb529)[@Override ] public boolean handleRenderType(ItemStack item, ItemRenderType type) { return type == ItemRenderType.*EQUIPPED *|| type == ItemRenderType.*EQUIPPED_FIRST_PERSON*%(#cc7832)[; ] } %(#bbb529)[@Override ] public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return type == ItemRenderType.*EQUIPPED*%(#cc7832)[; ] } %(#bbb529)[@Override ] public void renderItem(ItemRenderType type, ItemStack item, Object… data) { %(#808080)[// Get icon index for the texture ] %(#808080)[ // EntityItem entItem = new EntityItem(Minecraft.getMinecraft().theWorld, 0D, 0D, 0D, item); ] String name = "Iconnue"%(#cc7832)[; ] String surname = "Inconnue"%(#cc7832)[; ] int age = 0%(#cc7832)[; ] NBTTagCompound nbt = item.getTagCompound()%(#cc7832)[; ] if (nbt != null) { age = nbt.getInteger("age")%(#cc7832)[; ] name = nbt.getString("name") != null ? nbt.getString("name") : name%(#cc7832)[; ] surname = nbt.getString("surname") != null ? nbt.getString("surname") : surname%(#cc7832)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#cc7832)[; ] FontRenderer font = Minecraft.*getMinecraft*().fontRenderer%(#cc7832)[; ] switch (type) { case *EQUIPPED*: GL11.*glTranslatef*(1F, -.5F, 0F)%(#cc7832)[; ]%(#cc7832)[ break; ] case *EQUIPPED_FIRST_PERSON*: GL11.*glTranslatef*(8F, 2F, 2F)%(#cc7832)[; ] GL11.*glRotatef*(-10F, 0F, 0F, 1F)%(#cc7832)[; ]%(#cc7832)[ break; ] default: } GL11.*glRotatef*(180F, 0F, 0F, 1F)%(#cc7832)[; ] GL11.*glScalef*(0.05F, 0.05F, 0.05F)%(#cc7832)[; ] font.drawStringWithShadow(surname,-5,5, 0xFFFFFF);%(#808080)[//Patrick ]%(#808080)[ // fontRenderer.drawStringWithShadow("Nom : " + name, 1, 5, 0xFFFFFF); ]%(#808080)[ //fontRenderer.drawStringWithShadow("Âge : " + age, 1, 10, 0xFFFFFF) ]%(#808080)[ //renderItem.renderIcon(0,0,icon,64,64); ]%(#808080)[ //GL11.glScalef(2F, 2F, 2F); ] *manager*.bindTexture(*texture*)%(#cc7832)[; ] Tessellator tessellator = Tessellator.*instance*%(#cc7832)[; ] tessellator.startDrawingQuads()%(#cc7832)[; ] tessellator.addVertexWithUV((double)(0), (double)(16), (double)this.zLevel, (double)0, (double)16)%(#cc7832)[; ] tessellator.addVertexWithUV((double)(16), (double)(16), (double)this.zLevel, (double)0, (double)16)%(#cc7832)[; ] tessellator.addVertexWithUV((double)(16), (double)(0), (double)this.zLevel, (double)0, (double)16)%(#cc7832)[; ] tessellator.addVertexWithUV((double)(0), (double)(0), (double)this.zLevel, (double)0, (double)16)%(#cc7832)[; ] tessellator.draw()%(#cc7832)[; ] %(#808080)[//renderItem.renderIcon(0, 0, icon, 16, 16); ] } }
merci de vos réponse