Comment faire une lance ?
-
Re,
J’ai un problème à la la ligne : “tonModel.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);”
J’ai bien modifié tonModel par ModelSpear mais il me créé une érreur car ModelSpear.render est en “public void” mais je ne peux pas changer en “public static” sinon ça fait tout buguer
-
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

