Comment faire une lance ?
-
@‘SCAREX’:
Dans ton glTranslate, rajoute un -1 sur l’axe y, il faut changer ces valeurs pour avoir la bonne.
…
-
Donc d’après moi la ligne ressemble à ça : “GL11.glTranslatef((float)par2, -1, (float)par6);”
-
Non, réfléchis un peu : il faut décaler de 1 vers le bas ton entité, donc tu prend la variable et tu lui met -1.
-
GL11.glTranslatef((float)par2, (float)par4 - 1, (float)par6); ?
-
Oui, c’est çà, si par2, par4 et par6 correspondent aux x,y et z.
-
J’en sait rien ça ne fonctionne toujours pas
Ah et, ce n’est pas le code de la flèche mais celui du satellite de je ne sais plus qui le render que j’ai “arrangé” pour ma lance -
Envoi un screenshot de ta lance, et tes classe de rendu
-
La render (Sans le -1) : https://github.com/ArkCraft/ArkCraftMod/blob/master/src/main/java/com/quantumsheep/arkcraft/render/RenderSpear.java
L’entité : https://github.com/ArkCraft/ArkCraftMod/blob/master/src/main/java/com/quantumsheep/arkcraft/entity/EntitySpear.java
Le model : https://github.com/ArkCraft/ArkCraftMod/blob/master/src/main/java/com/quantumsheep/arkcraft/models/ModelSpear.java
L’item : https://github.com/ArkCraft/ArkCraftMod/blob/master/src/main/java/com/quantumsheep/arkcraft/weapons/WeaponSpear.javaV Screenshots V
Quand je l’envois : http://www.hostingpics.net/viewer.php?id=50024620150817205534.png
Après un court instant : http://www.hostingpics.net/viewer.php?id=11857020150817205537.pngTu remarqueras que la lance n’apparaît pas mais elle est présente (Décalée), on la vois quand elle est en l’air.
-
Moi je vois aucune lance. Mais tu n’as pas modifié ton code : https://github.com/ArkCraft/ArkCraftMod/blob/master/src/main/java/com/quantumsheep/arkcraft/render/RenderSpear.java#L38
Et tu n’as pas clarifié ton code : https://github.com/ArkCraft/ArkCraftMod/blob/master/src/main/java/com/quantumsheep/arkcraft/render/RenderSpear.java#L43-L47
-
J’avais pas mis le code à jour sur github, là c’est bon + La clarification du code
Comment ça tu ne vois aucunes lances ? -
Ton code est toujours pas bon, refais toute ta classe de rendu.
-
Par contre ça m’affiche comme ça : http://www.hostingpics.net/viewer.php?id=93329420150817220505.png (Là ou je vise est là ou la lance atterrie, elle se tp au bout d’un moment)
-
xD, tu peux le mettre dans vos plus beaux fails.
Tu as copié le rendu de la flèche, or minecraft n’utilise pas le même système de rendu.
-
Je veux bien mais je ne saurais pas l’expliquer xD
Tu peux m’éclaircir voir si tu as le temps me faire le code de rendu ?
-
Voilà le rendu de base :
public class TonRender extends Render { @Override public void doRender(Entity entity, 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(entity); // On bind la texture // Si tu veux augmenter la taille de ton model avec un glScale, c'est ici qu'il faut le faire tonModel.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); } @Override protected ResourceLocation getEntityTexture(Entity entity) { return taTexture; } }
-
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…