Comment faire une lance ?
-
Il faut créer une nouvelle instance de ton modèle …
Au début de la classe :
private ModelSpear modelSpear = new ModelSpear();
Et ensuite dans la fonction doRender tu fais modelSpear.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); -
Voilà, j’ai fini le code de rendu ::::
package com.quantumsheep.arkcraft.render; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.quantumsheep.arkcraft.entity.EntitySpear; import com.quantumsheep.arkcraft.lib.References; import com.quantumsheep.arkcraft.models.ModelSpear; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class RenderSpear extends Render { private static final ResourceLocation SpearTextures = new ResourceLocation(References.MODID, "textures/models/ModelSpear.png"); private ModelSpear modelSpear = new ModelSpear(); public RenderSpear() { this.shadowSize = 0.5F; } public void renderSpear(EntitySpear entitySpear, double x, double y, double z, float f, float prt) { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); // On décale l'entité pour qu'elle soit au bon endroit GL11.glTranslatef(0.0F, 1.4F, 0.0F); // Ici tu décales ton entité en fonction de ce que tu veux, pour moi mon model était trop bas, donc je l'ai monté de 1 GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); // Ensuite tu modifies la rotation (NOTE : c'est mieux de faire la rotation après, NOTE 2 : mon model ne tournait pas en fonction de la direction de l'entité, il faut que tu le rajoutes toi-même) this.bindEntityTexture(entitySpear); // On bind la texture // Si tu veux augmenter la taille de ton model avec un glScale, c'est ici qu'il faut le faire modelSpear.render(entitySpear, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); } protected ResourceLocation getEntityTexture(EntitySpear entitySpear) { return SpearTextures; } @Override protected ResourceLocation getEntityTexture(Entity entity) { return this.getEntityTexture((EntitySpear)entity); } @Override public void doRender(Entity entity, double par2, double par4, double par6, float par8, float par9) { this.renderSpear((EntitySpear)entity, par2, par4, par6, par8, par9); } }:::
Sauf que cette fois : http://img11.hostingpics.net/pics/69884320150818123538.png
Et la lance se tp toujours un moment après que je l’ai lancée… -
Ca m’arrive encore bien également , lorsque je la tire au sol parfois elle se tp au dessus , il n’y a que quand je tire sur un mob qu’elle ne fais pas chier.
-
Oui sauf que moi c’est tout le temps

Et ça m’embête car elle se tp au dessus mais aussi à coté parfois… -
@‘QuantumSheep’:
Oui sauf que moi c’est tout le temps

Et ça m’embête car elle se tp au dessus mais aussi à coté parfois…Oui ca me fait la même chose ^^ J’ai jamais réussi a régler le problème
Si quelqu’un a la soluce d’ailleurs 
-
Je comprends pas trop, tu peux faire une vidéo ?
-
-
c’est toujours très pratique les vidéos privées…
-
@‘SCAREX’:
c’est toujours très pratique les vidéos privées…
EXCUSE moi , j’oublie a chaque fois x)
-
A mon avis le bug vient du code, vous avez recopié le code de la flèche ?
-
@‘SCAREX’:
A mon avis le bug vient du code, vous avez recopié le code de la flèche ?
Oui ^^ Pour l’instant ca me dérange pas plus que ca mais si la soluce existe je prend ^^
-
Je connais pas le code de la flèche, mais si tu veux corriger le bug, il faut parcourir le code pour voir d’où vient le problème
-
Voilà, c’est exactement le problème

Fifou, tu peux m’envoyer ton code de rendu stp ? Pour comparer
-
package mod.client.render; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mod.common.entity.EntityFlechette; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class RenderFlechette extends RenderLiving { public RenderFlechette(ModelBase par1ModelBase, float par2) { super(par1ModelBase, par2); } protected ResourceLocation getEntityTexture(Entity var1) { return new ResourceLocation("dinocraft", "textures/entity/EntityFlechette.png"); } public void doRender(EntityFlechette par1EntityFlechette, double par2, double par4, double par6, float par8, float par9) { bindEntityTexture(par1EntityFlechette); GL11.glPushMatrix(); GL11.glTranslatef((float)par2, (float)par4, (float)par6); GL11.glRotatef(par1EntityFlechette.prevRotationYaw + (par1EntityFlechette.rotationYaw - par1EntityFlechette.prevRotationYaw) * par9 - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(par1EntityFlechette.prevRotationPitch + (par1EntityFlechette.rotationPitch - par1EntityFlechette.prevRotationPitch) * par9, 0.0F, 0.0F, 1.0F); Tessellator tessellator = Tessellator.instance; byte b0 = 0; float f2 = 0.0F; float f3 = 0.5F; float f4 = (0 + b0 * 10) / 32.0F; float f5 = (5 + b0 * 10) / 32.0F; float f6 = 0.0F; float f7 = 0.15625F; float f8 = (5 + b0 * 10) / 32.0F; float f9 = (10 + b0 * 10) / 32.0F; float f10 = 0.05625F; GL11.glEnable(32826); GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F); GL11.glScalef(f10, f10, f10); GL11.glTranslatef(-4.0F, 0.0F, 0.0F); GL11.glNormal3f(f10, 0.0F, 0.0F); tessellator.startDrawingQuads(); tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, f6, f8); tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, f7, f8); tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, f7, f9); tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, f6, f9); tessellator.draw(); GL11.glNormal3f(-f10, 0.0F, 0.0F); tessellator.startDrawingQuads(); tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, f6, f8); tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, f7, f8); tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, f7, f9); tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, f6, f9); tessellator.draw(); for (int i = 0; i < 4; i++) { GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); GL11.glNormal3f(0.0F, 0.0F, f10); tessellator.startDrawingQuads(); tessellator.addVertexWithUV(-8.0D, -2.0D, 0.0D, f2, f4); tessellator.addVertexWithUV(8.0D, -2.0D, 0.0D, f3, f4); tessellator.addVertexWithUV(8.0D, 2.0D, 0.0D, f3, f5); tessellator.addVertexWithUV(-8.0D, 2.0D, 0.0D, f2, f5); tessellator.draw(); } GL11.glDisable(32826); GL11.glPopMatrix(); } public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) { doRender((EntityFlechette)par1Entity, par2, par4, par6, par8, par9); } }Tiens

-
Merci

C’est chelou le TP car quand je fait F3+B Il m’affiche comme si la hitbox était toujours sur la flèche alors que on peut la récupérer uniquement là ou elle a atterrie.
J’ai fait des tests et lors d’un déco-reco la flèche se remet bien comme il faut… -
Résolu ?
-
Nan c’est chiant

