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 ;
%(#a9b7c6)[[font=Courier New]package ]fr.ph1823.MyLife.Item%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.Minecraft%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.gui.FontRenderer%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.renderer.entity.RenderItem%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.texture.DynamicTexture%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.texture.TextureManager%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.renderer.texture.TextureMap%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.entity.item.EntityItem%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.item.ItemStack%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.nbt.NBTTagCompound%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.util.ChatComponentText%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.util.ResourceLocation%(#cc7832)[; ] %(#cc7832)[import ]net.minecraftforge.client.IItemRenderer%(#cc7832)[; ]%(#cc7832)[import ]org.lwjgl.opengl.GL11%(#cc7832)[; ] %(#cc7832)[import ]java.util.Random%(#cc7832)[; ] %(#629755)[*/** *]%(#629755)[* * Created by ph1823 - Minecraft on 28/03/2016. *]%(#629755)[* */ *]%(#cc7832)[public class ]IdentityTechneRender %(#cc7832)[implements ]IItemRenderer { %(#cc7832)[protected ]Identity %(#9876aa)[model]%(#cc7832)[; ]%(#cc7832)[ private static ]RenderItem %(#9876aa)[*renderItem *]= %(#cc7832)[new ]RenderItem()%(#cc7832)[; ] %(#808080)[// private static DynamicTexture dyn; ] %(#cc7832)[private static ]TextureManager %(#9876aa)[*manager *]= Minecraft.*getMinecraft*().getTextureManager()%(#cc7832)[; ] %(#cc7832)[ protected static ]ResourceLocation %(#9876aa)[*texture *]= %(#cc7832)[new ]ResourceLocation(%(#6a8759)["plants:textures/items/card.png"])%(#cc7832)[; ] %(#cc7832)[ public ]IdentityTechneRender() { %(#808080)[//this.getDynamicTextureLocation() ] %(#9876aa)[model ]= %(#cc7832)[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 ] %(#cc7832)[public boolean ]%(#ffc66d)[handleRenderType](ItemStack item%(#cc7832)[, ]ItemRenderType type) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED *]|| type == ItemRenderType.%(#9876aa)[*EQUIPPED_FIRST_PERSON*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public boolean ]%(#ffc66d)[shouldUseRenderHelper](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]ItemRendererHelper helper) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public void ]%(#ffc66d)[renderItem](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]Object… data) { %(#808080)[// Get icon index for the texture ] %(#808080)[ // EntityItem entItem = new EntityItem(Minecraft.getMinecraft().theWorld, 0D, 0D, 0D, item); ] String name = %(#6a8759)["Iconnue"]%(#cc7832)[; ] String surname = %(#6a8759)["Inconnue"]%(#cc7832)[; ] %(#cc7832)[ int ]age = %(#6897bb)[0]%(#cc7832)[; ] NBTTagCompound nbt = item.getTagCompound()%(#cc7832)[; ] %(#cc7832)[ if ](nbt != %(#cc7832)[null]) { age = nbt.getInteger(%(#6a8759)["age"])%(#cc7832)[; ] name = nbt.getString(%(#6a8759)["name"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["name"]) : name%(#cc7832)[; ] surname = nbt.getString(%(#6a8759)["surname"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["surname"]) : surname%(#cc7832)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#cc7832)[; ] FontRenderer font = Minecraft.*getMinecraft*().%(#9876aa)[fontRenderer]%(#cc7832)[; ] %(#cc7832)[ switch ](type) { %(#cc7832)[case ]%(#9876aa)[*EQUIPPED*]: GL11.*glTranslatef*(%(#6897bb)[1F]%(#cc7832)[, ]-%(#6897bb)[.5F]%(#cc7832)[, ]%(#6897bb)[0F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ case ]%(#9876aa)[*EQUIPPED_FIRST_PERSON*]: GL11.*glTranslatef*(%(#6897bb)[8F]%(#cc7832)[, ]%(#6897bb)[2F]%(#cc7832)[, ]%(#6897bb)[2F])%(#cc7832)[; ] GL11.*glRotatef*(-%(#6897bb)[10F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ default]: } GL11.*glRotatef*(%(#6897bb)[180F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ] GL11.*glScalef*(%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F])%(#cc7832)[; ] font.drawStringWithShadow(surname%(#cc7832)[,]-%(#6897bb)[5]%(#cc7832)[,]%(#6897bb)[5]%(#cc7832)[, ]%(#6897bb)[0xFFFFFF])%(#cc7832)[;]%(#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*().%(#9876aa)[renderEngine].bindTexture(TextureMap.%(#9876aa)[*locationItemsTexture*])%(#cc7832)[; ] %(#9876aa)[*renderItem*].renderIcon(%(#6897bb)[0]%(#cc7832)[, ]%(#6897bb)[0]%(#cc7832)[, ]icon%(#cc7832)[, ]%(#6897bb)[16]%(#cc7832)[, ]%(#6897bb)[16])%(#cc7832)[; ] GL11.*glScalef*(%(#6897bb)[10F]%(#cc7832)[, ]%(#6897bb)[10F]%(#cc7832)[, ]%(#6897bb)[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 :
%(#a9b7c6)[[font=Courier New]package ]fr.ph1823.MyLife.Item%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.Minecraft%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.gui.FontRenderer%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.gui.Gui%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.gui.MapItemRenderer%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.Tessellator%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.WorldRenderer%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.entity.RenderItem%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.texture.DynamicTexture%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.texture.TextureAtlasSprite%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.texture.TextureManager%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.renderer.texture.TextureMap%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.entity.item.EntityItem%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.item.ItemStack%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.nbt.NBTTagCompound%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.util.ChatComponentText%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.util.IIcon%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.util.ResourceLocation%(#cc7832)[; ] %(#cc7832)[import ]net.minecraftforge.client.IItemRenderer%(#cc7832)[; ]%(#cc7832)[import ]org.lwjgl.opengl.GL11%(#cc7832)[; ] %(#cc7832)[import ]java.util.Random%(#cc7832)[; ] %(#629755)[*/** *]%(#629755)[* * Created by ph1823 - Minecraft on 28/03/2016. *]%(#629755)[* */ *]%(#cc7832)[public class ]IdentityTechneRender %(#cc7832)[implements ]IItemRenderer { %(#cc7832)[protected ]Identity %(#9876aa)[model]%(#cc7832)[; ]%(#cc7832)[ private static ]RenderItem %(#9876aa)[*renderItem *]= %(#cc7832)[new ]RenderItem()%(#cc7832)[; ] %(#808080)[// private static DynamicTexture dyn; ] %(#cc7832)[protected float ]%(#9876aa)[zLevel]%(#cc7832)[; ] %(#cc7832)[ private static ]TextureManager %(#9876aa)[*manager *]= Minecraft.*getMinecraft*().getTextureManager()%(#cc7832)[; ] %(#cc7832)[ protected static ]ResourceLocation %(#9876aa)[*texture *]= %(#cc7832)[new ]ResourceLocation(%(#6a8759)["plants:textures/items/card1.png"])%(#cc7832)[; ] %(#cc7832)[ public ]IdentityTechneRender() { %(#808080)[//this.getDynamicTextureLocation() ] %(#9876aa)[model ]= %(#cc7832)[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 ] %(#cc7832)[public boolean ]%(#ffc66d)[handleRenderType](ItemStack item%(#cc7832)[, ]ItemRenderType type) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED *]|| type == ItemRenderType.%(#9876aa)[*EQUIPPED_FIRST_PERSON*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public boolean ]%(#ffc66d)[shouldUseRenderHelper](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]ItemRendererHelper helper) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public void ]%(#ffc66d)[renderItem](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]Object… data) { %(#808080)[// Get icon index for the texture ] %(#808080)[ // EntityItem entItem = new EntityItem(Minecraft.getMinecraft().theWorld, 0D, 0D, 0D, item); ] String name = %(#6a8759)["Iconnue"]%(#cc7832)[; ] String surname = %(#6a8759)["Inconnue"]%(#cc7832)[; ] %(#cc7832)[ int ]age = %(#6897bb)[0]%(#cc7832)[; ] NBTTagCompound nbt = item.getTagCompound()%(#cc7832)[; ] %(#cc7832)[ if ](nbt != %(#cc7832)[null]) { age = nbt.getInteger(%(#6a8759)["age"])%(#cc7832)[; ] name = nbt.getString(%(#6a8759)["name"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["name"]) : name%(#cc7832)[; ] surname = nbt.getString(%(#6a8759)["surname"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["surname"]) : surname%(#cc7832)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#cc7832)[; ] FontRenderer font = Minecraft.*getMinecraft*().%(#9876aa)[fontRenderer]%(#cc7832)[; ] %(#cc7832)[ switch ](type) { %(#cc7832)[case ]%(#9876aa)[*EQUIPPED*]: GL11.*glTranslatef*(%(#6897bb)[1F]%(#cc7832)[, ]-%(#6897bb)[.5F]%(#cc7832)[, ]%(#6897bb)[0F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ case ]%(#9876aa)[*EQUIPPED_FIRST_PERSON*]: GL11.*glTranslatef*(%(#6897bb)[8F]%(#cc7832)[, ]%(#6897bb)[2F]%(#cc7832)[, ]%(#6897bb)[2F])%(#cc7832)[; ] GL11.*glRotatef*(-%(#6897bb)[10F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ default]: } GL11.*glRotatef*(%(#6897bb)[180F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ] GL11.*glScalef*(%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F])%(#cc7832)[; ] font.drawStringWithShadow(surname%(#cc7832)[,]-%(#6897bb)[5]%(#cc7832)[,]%(#6897bb)[5]%(#cc7832)[, ]%(#6897bb)[0xFFFFFF])%(#cc7832)[;]%(#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); ] %(#9876aa)[*manager*].bindTexture(%(#9876aa)[*texture*])%(#cc7832)[; ] Tessellator tessellator = Tessellator.%(#9876aa)[*instance*]%(#cc7832)[; ] tessellator.startDrawingQuads()%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.draw()%(#cc7832)[; ] %(#808080)[//renderItem.renderIcon(0, 0, icon, 16, 16); ] } }
merci de vos réponse