Résolu GlRotatef
-
J’ai un petit problème avec mon bloc qui ne veut pas se rotate avec mon bloc directionnel.
-
Essaie de debugger les cases de ton switch *TileEntityLogPileSpecialRenderer#renderTileEntityTileLogPileAt *avec des System.out.println pour voir si c’est quand même appelé. Regarde aussi si tu as bien enregistré ta TileEntity dans ta méthode init avec cette ligne.
[font=monospaceGameRegistry][font=monospace.][font=monospaceregisterTileEntity][font=monospace(][font=monospaceTileEntityTutorial][font=monospace.][font=monospaceclass][font=monospace,] [font=monospace“TileEntityTutorial”][font=monospace);]
Sinon je sais pas, faudrait que je me penche + sur tes sources -
elles sont appelé mes cases
mes blocs se trouvent dans les blocs de laine bleu
-
Où est le problème en fait ? Je ne comprends pas, ton bloc est orientable (si je me fie au screen) ?
-
ba je n’arrive pas a le mettre correctement, le rotate ne veut pas s’appliquer
j’ai essayé de nombreuse valeurs sans resultat dans le glRotatef. -
Genre, mon message n’est pas partie.
Ta fonction onBlockPlacedBy devait être comme ça :public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileLogPile) { int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3; ((TileLogPile)tile).setDirection((byte)direction); } }
-
elle est présente dans mon ma class de mon bloc……
-
Ah non, ce n’est pas la même discussion. C’était elle où j’avais répondu : http://minecraftforgefrance.fr/showthread.php?tid=2740
Pourquoi l’avoir passé en résolu si ce n’est pas le cas ? -
Elle est resolut mais j’ai un autre problème :
je n’arrive pas rotate mes blocs correctement
mais le bloc directionnel fonctionne.les model sont pas aligné avec le bloc
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
-
Pourquoi tu as changé l’axe de rotation en fonction de la direction ? ça doit toujours être y.
à quoi ressemble ton modèle sur techne ? -
quel axe de rotation? celui de glRotatef ?
-
Tu ne devrais pas avoir de switch en fonction de la direction.
Il devrait avoir juste un glRotate(90F * tile.getDirection(), 0.0F, 1.0F, 0.0F) pour tous les cas. -
ça ne fonctionne pas
GL11.glRotatef(90F * tile.getDirection(), 0.0F, 1.0F, 0.0F);↓↓↓↓↓↓↓↓↓↓
-
Après la rotation mais avant le rendu, ajoute glTranslatef(0,0,1); (essaie aussi avec glTranslatef(0,0,-1); )
Et dis nous si ça marcheSent from my GT-I9000 using Tapatalk 2
-
ça ne change rien
-
Envoies ton code de rendu directement sur le forum entouré des balises [java][/java] (sans les * bien sur)
Sent from my GT-I9000 using Tapatalk 2
-
en zip
-
TileEntityLogPileSpecialRenderer :
private void renderTileEntityTileLogPileAt(TileLogPile tile, double x, double y, double z, float partialRenderTick) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(90F * tile.getDirection(), 0.0F, 1.0F, 0.0F); this.bindTexture(logPileTexture); modelLogPile.renderAll(); GL11.glPopMatrix(); }
Fonction renderAll dans la classe de ton modèle :
public void renderAll() { Shape1.render(0.0625F); Shape2.render(0.0625F); Shape3.render(0.0625F); }
Voila, ça fonctionnera mieux comme ça.