• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    GLUtils animation seulement d'une partie de l'objet 3d

    Sans suite
    5
    14
    3796
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • gargan
      gargan dernière édition par

      Bonjour à tous! Je voudrait animer une tourelle avec GUtil. Je voudrais animer seulement le haut et pas le pied de la tourelle.
      Je l’ai donc découper en 2 partie vu que c’est apparemment la seule façon (pour le moment de l’animer).
      Seulement je n’arrive pas à l’animer! Est-ce que quelqu’un pourrait me montrer simplement comment la faire tourner sur l’axe x en continue par exemple?

      Mon Bloc

      package fr.lefgolas.TurretsMod;
      
      import net.minecraft.block.Block;
      import net.minecraft.block.material.Material;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.ItemStack;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.world.World;
      
      public class BlockSentry extends Block {
      
      protected BlockSentry(Material material) {
      super(material);
      this.setCreativeTab(CreativeTabs.tabBlock);
      }
      
      @Override
      public void onBlockPlacedBy(World world, int x, int y, int z,
      EntityLivingBase living, ItemStack stack) {
      EntityPlayer player = (EntityPlayer) living;
      if(!world.isRemote)
             {
                 TileEntity tile = world.getTileEntity(x, y, z);
                 if(tile instanceof TileEntitySentry)
                 {
                  TileEntitySentry tileSentry = (TileEntitySentry)tile;
                     tileSentry.setUsername(player.getDisplayName());
                 }
             }
         }
      
      //desactive le rendu normal
      public boolean isOpaqueCube() {
      return false;
      }
      
      public boolean renderAsNormalBlock() {
      return false;
      }
      
      public int getRenderType() {
      return -1;
      }
      
      @Override
      public boolean hasTileEntity(int metadata) {
      return true;
      }
      
      @Override
      public TileEntity createTileEntity(World world, int metadata) {
      return new TileEntitySentry();
      }
      
      }
      
      

      Mon TileEntity

      package fr.lefgolas.TurretsMod;
      
      import java.util.List;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.nbt.NBTTagCompound;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.world.World;
      
      public class TileEntitySentry extends TileEntity {
      protected String username;
      
      public TileEntitySentry() {
      
      }
      
      @Override
      public void readFromNBT(NBTTagCompound compound) {
      super.readFromNBT(compound);
      this.username = compound.getString("Player");
      }
      
      @Override
      public void writeToNBT(NBTTagCompound compound) {
      super.writeToNBT(compound);
      compound.setString("Player", this.username);
      }
      
      public void setUsername(String playerPseudo) {
      this.username = playerPseudo;
      }
      
      public String getUsername(){
      return this.username;
      }
      }
      

      Mon TileEntityRenderer

      package fr.lefgolas.TurretsMod.client;
      
      import java.util.List;
      
      import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
      import net.minecraft.entity.Entity;
      import net.minecraft.tileentity.TileEntity;
      import org.jglrxavpok.glutils.TessellatorModel;
      import org.lwjgl.opengl.GL11;
      import fr.lefgolas.TurretsMod.TileEntitySentry;
      import fr.lefgolas.TurretsMod.TurretsMod;
      
      public class TileEntitySentryObjRenderer extends TileEntitySpecialRenderer {
      
      private TessellatorModel modelHaut;
      private TessellatorModel modelBas;
      
      public TileEntitySentryObjRenderer() {
      modelHaut = new TessellatorModel("/assets/" + TurretsMod.MODID + "/models/HautTurret.obj");
      modelHaut.setID("sentryHaut");
      modelHaut.regenerateNormals();
      modelBas = new TessellatorModel("/assets/" + TurretsMod.MODID + "/models/BasTurret.obj");
      modelBas.setID("sentryBas");
      modelBas.regenerateNormals();
      TessellatorModel.MODEL_RENDERING_BUS.register(this);
      }
      
      @Override
      public void renderTileEntityAt(TileEntity tileentity, double x, double y,
      double z, float partialTick) {
      GL11.glPushMatrix();
      GL11.glTranslated(x + 0.5, y, z + 0.5);
      modelBas.render();
      modelHaut.render();
      GL11.glPopMatrix();
      }
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • gargan
        gargan dernière édition par

        J’ai changé un peu mon code mais j’ai une erreur: Ticking block entity
        Mon bloc:

        package fr.lefgolas.TurretsMod;
        
        import net.minecraft.block.Block;
        import net.minecraft.block.material.Material;
        import net.minecraft.client.Minecraft;
        import net.minecraft.creativetab.CreativeTabs;
        import net.minecraft.entity.EntityLivingBase;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.item.ItemStack;
        import net.minecraft.server.MinecraftServer;
        import net.minecraft.tileentity.TileEntity;
        import net.minecraft.util.ChatComponentTranslation;
        import net.minecraft.world.World;
        import fr.lefgolas.TurretsMod.client.TileEntitySentry;
        
        public class BlockSentry extends Block {
        
        protected BlockSentry(Material material) {
        super(material);
        this.setCreativeTab(CreativeTabs.tabBlock);
        }
        
        @Override
        public void onBlockPlacedBy(World world, int x, int y, int z,
        EntityLivingBase living, ItemStack stack) {
        EntityPlayer player = (EntityPlayer) living;
        if(!world.isRemote)
               {
                   TileEntity tile = world.getTileEntity(x, y, z);
                   if(tile instanceof TileEntitySentry)
                   {
                    TileEntitySentry tileSentry = (TileEntitySentry)tile;
                       tileSentry.setUsername(player.getDisplayName());
                   }
               }
           }
        
        public boolean isOpaqueCube() {
        return false;
        }
        
        public boolean renderAsNormalBlock() {
        return false;
        }
        
        public int getRenderType() {
        return -1;
        }
        
        @Override
        public boolean hasTileEntity(int metadata) {
        return true; // signale que le bloc a une entité
        }
        
        @Override
        public TileEntity createTileEntity(World world, int metadata) {
        return new TileEntitySentry(); // indique quelle est l'entité de bloc
        }
        
        }
        
        

        Mon tileEntity

        package fr.lefgolas.TurretsMod.client;
        
        import java.util.List;
        
        import net.minecraft.client.Minecraft;
        import net.minecraft.entity.Entity;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.nbt.NBTTagCompound;
        import net.minecraft.tileentity.TileEntity;
        import net.minecraft.world.World;
        
        public class TileEntitySentry extends TileEntity {
        protected String username;
        
        public TileEntitySentry() {
        
        }
        
        @Override
        public void readFromNBT(NBTTagCompound compound) {
        super.readFromNBT(compound);
        this.username = compound.getString("Player");
        }
        
        @Override
        public void writeToNBT(NBTTagCompound compound) {
        super.writeToNBT(compound);
        compound.setString("Player", this.username);
        }
        
        public void setUsername(String playerPseudo) {
        this.username = playerPseudo;
        }
        
        @Override
        public void updateEntity() {
                       super.updateEntity();
        List <entity>entities = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.worldObj.getPlayerEntityByName(username), this.getRenderBoundingBox().expand(20.0D, 20.0D, 20.0D));
        }
        
        }
        
        

        Une 2ème question: comment faire pour “redemander” un rendu afin de l’animer et de tourner la partie haute selon les coordonnées des entitées récupérées dans updateEntity? Est-ce que je dois utiliser les events?</entity>

        1 réponse Dernière réponse Répondre Citer 0
        • jglrxavpok
          jglrxavpok Modérateurs dernière édition par

          Sans glRotated dans ton rendu, c’est sûr que ça va pas tourner…
          Passe par les events de GLUtils pour faire tourner les différentes parties du modèle.

          Ensuite donne nous toute l’exception même si je pense que cela vient du fait que [font=Monaco, Consolas, Courier, monospacethis.worldObj ]soit null

          Modérateur sur MFF. 
          Mon Github: http://github.com/jglrxavpok
          Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

          1 réponse Dernière réponse Répondre Citer 0
          • Superloup10
            Superloup10 Modérateurs dernière édition par

            Ce serait bien d’utiliser les balises java pour le code Java.

            Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

            Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

            1 réponse Dernière réponse Répondre Citer 0
            • gargan
              gargan dernière édition par

              Oui c’est ça j’ai corrigé mais je comprends pas trop la logique du truc: worldobj alterne entre null et pas null vous savez pourquoi? 
              Ok donc pour l’animation j’ai tenté ça:
              Mon tileEntity

              ​package fr.lefgolas.TurretsMod;
              
              import java.util.Iterator;
              import java.util.List;
              
              import fr.lefgolas.TurretsMod.client.TileEntitySentryObjRenderer;
              import net.minecraft.command.IEntitySelector;
              import net.minecraft.entity.Entity;
              import net.minecraft.entity.EntityLivingBase;
              import net.minecraft.entity.passive.EntityChicken;
              import net.minecraft.entity.passive.EntityCow;
              import net.minecraft.entity.passive.EntityPig;
              import net.minecraft.nbt.NBTTagCompound;
              import net.minecraft.tileentity.TileEntity;
              
              public class TileEntitySentry extends TileEntity {
              protected String username;
              protected IEntitySelector iEntitySelector;
              
              public TileEntitySentry() {
              this.iEntitySelector = new IEntitySelector()
                      {
              @Override
              public boolean isEntityApplicable(Entity entity) {
                              return entity instanceof EntityLivingBase;
              
              }
                      };
              }
              
              @Override
              public void readFromNBT(NBTTagCompound compound) {
              super.readFromNBT(compound);
              this.username = compound.getString("Player");
              }
              
              @Override
              public void writeToNBT(NBTTagCompound compound) {
              super.writeToNBT(compound);
              compound.setString("Player", this.username);
              }
              
              public void setUsername(String playerPseudo) {
              this.username = playerPseudo;
              }
              
              public String getUsername(){
              return this.username;
              }
              
              @Override
              public void updateEntity(){
              if(this.worldObj != null && username != null){
              List listEntity = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.worldObj.getPlayerEntityByName(username), this.getRenderBoundingBox().expand(20D, 20D, 20D), iEntitySelector);
              if(!listEntity.isEmpty()){
              EntityLivingBase entity = (EntityLivingBase) listEntity.get(0);
              TileEntitySentryObjRenderer.px = entity.posX;
              TileEntitySentryObjRenderer.py = entity.posY;
              TileEntitySentryObjRenderer.pz = entity.posZ;
              TileEntitySentryObjRenderer.hasEntityTarget = true;
              }
              }
              }
              
              }
              

              Mon tileentityrenderer

              ​package fr.lefgolas.TurretsMod.client;
              
              import java.util.List;
              
              import javax.vecmath.Vector3d;
              
              import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
              import net.minecraft.entity.Entity;
              import net.minecraft.tileentity.TileEntity;
              
              import org.jglrxavpok.glutils.TessellatorModel;
              import org.lwjgl.opengl.GL11;
              
              import fr.lefgolas.TurretsMod.TileEntitySentry;
              import fr.lefgolas.TurretsMod.TurretsMod;
              
              public class TileEntitySentryObjRenderer extends TileEntitySpecialRenderer {
              public static double px;
              public static double py;
              public static double pz;
              private double axeX, axeY, axeZ;
              private TessellatorModel modelHaut;
              private TessellatorModel modelBas;
              public static boolean hasEntityTarget;
              public TileEntitySentryObjRenderer() {
              hasEntityTarget = false;
              axeX = 0.0D;
              axeY = 0.0D;
              axeZ = 0.0D;
              modelHaut = new TessellatorModel("/assets/" + TurretsMod.MODID + "/models/HautTurret.obj");
              modelHaut.setID("sentryHaut");
              modelHaut.regenerateNormals();
              modelBas = new TessellatorModel("/assets/" + TurretsMod.MODID + "/models/BasTurret.obj");
              modelBas.setID("sentryBas");
              modelBas.regenerateNormals();
              TessellatorModel.MODEL_RENDERING_BUS.register(this);
              }
              
              @Override
              public void renderTileEntityAt(TileEntity tileentity, double x, double y,
              double z, float partialTick) {
              GL11.glPushMatrix();
              GL11.glTranslated(x + 0.5, y, z + 0.5);
              modelBas.render();
              double sentryAngleX = 0.0D;
              double sentryAngleY = 0.0D;
              double sentryAngleZ = 0.0D;
              
              if(hasEntityTarget){
              if(x != px){
              axeX = 1.0D;
              sentryAngleX = px-x;
              }
              if(y != py){
              axeY = 1.0D;
              sentryAngleY = py - y;
              }
              if(z != pz){
              axeZ = 1.0D;
              sentryAngleZ = pz - z; 
              } 
              GL11.glRotated(sentryAngleX, axeX, 0.0D, 0.0D);
              GL11.glRotated(sentryAngleY, 0.0D, axeY, 0.0D);
              axeX = 0.0D;
              axeY = 0.0D;
              axeZ = 0.0D;
              }
              
              modelHaut.render();
              GL11.glPopMatrix();
              }
              
              }
              

              Mais je n’ai pas trop les résultats escomptés…
              Sans animation:

              Avec animation:
              ___Voici le modele:  https://dl.dropboxusercontent.com/u/46928438/modele.zip___Après quelques test seul la rotation autour de l’axe Y est correcte (même si l’angle lui ne l’est pas)
              Je ne vois pas comment trouver l’angle 😞

              Et je n’arrive pas à la faire pivoter vers le haut ou vers le bas!
              Mes talents de graphisme sont limités… 😉

              1 réponse Dernière réponse Répondre Citer 0
              • gargan
                gargan dernière édition par

                Y a t-il un moyen de visualiser le point de rotation?
                Et comment calculer l’angle 😞 ?

                1 réponse Dernière réponse Répondre Citer 0
                • Deleted
                  Deleted dernière édition par

                  @‘gargan’:

                  Y a t-il un moyen de visualiser le point de rotation?
                  Et comment calculer l’angle 😞 ?

                  Pareil je recherche aussi comment placer un point de rotation perso j’ai vu que la méthode :

                  ​%(#555555)[[size=xx-small]GL11.glTranslated(x, y, z); et GL11.glTranslated(-x, -y, -z)]
                  

                  Mais pour moi elle permet plus de bouger l’objet en lui même ou plus la shape concernée non le point de rotation.
                  Par exemple si je souhaite balancer  la jambe d’un de mes modele 3d je vais devoir placer un point de rotation qui serait en haut de la jambe ? Je peux faire ça ave c cette méthode mais y à pas un autre moyen d’y parvenir ? Je pense que ça en interesserai plus d’un ou plus de deux  :rolleyes:

                  Par exemple dans techne y’a la petite boule bleue qui est le point de rotation on peut bouger l’objet sans le point de rotation mais avec un modele 3d on peut pas voir où est le point de rotation ?

                  1 réponse Dernière réponse Répondre Citer 0
                  • jglrxavpok
                    jglrxavpok Modérateurs dernière édition par

                    “La boule bleue” de Techne fait à peu près la même chose:

                    GL11.glTranslated(x, y, z); et GL11.glTranslated(-x, -y, -z)
                    

                    Modérateur sur MFF. 
                    Mon Github: http://github.com/jglrxavpok
                    Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                    1 réponse Dernière réponse Répondre Citer 0
                    • Bowser338
                      Bowser338 dernière édition par

                      ce qu’il veut a mon avis et j’ai pas encore trouvé perso c’est de bouger le point de rotation sans bouger le shape

                      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                      1 réponse Dernière réponse Répondre Citer 0
                      • Deleted
                        Deleted dernière édition par

                        @‘Bowser338’:

                        ce qu’il veut a mon avis et j’ai pas encore trouvé perso c’est de bouger le point de rotation sans bouger le shape

                        Oui c’est exactement ça  😄

                        1 réponse Dernière réponse Répondre Citer 0
                        • gargan
                          gargan dernière édition par

                          Pour la rotation sur l’axe Y déjà je croyais avoir trouver la solution mais ça ne marche pas!
                          Je créais un vecteur de base (0;5;0)
                          Je creais un vecteur tourelle/entité
                          Je calculais l’angle entre les supports des 2 vecteurs

                          Mais sa ne marche pas…

                          La classe du tileEntity

                          ​package fr.lefgolas.TurretsMod;
                          
                          import java.util.Iterator;
                          import java.util.List;
                          
                          import fr.lefgolas.TurretsMod.client.TileEntitySentryObjRenderer;
                          import net.minecraft.command.IEntitySelector;
                          import net.minecraft.entity.Entity;
                          import net.minecraft.entity.EntityLivingBase;
                          import net.minecraft.entity.passive.EntityChicken;
                          import net.minecraft.entity.passive.EntityCow;
                          import net.minecraft.entity.passive.EntityPig;
                          import net.minecraft.nbt.NBTTagCompound;
                          import net.minecraft.tileentity.TileEntity;
                          
                          public class TileEntitySentry extends TileEntity {
                          protected String username;
                          protected IEntitySelector iEntitySelector;
                          
                          public TileEntitySentry() {
                          this.iEntitySelector = new IEntitySelector()
                                  {
                          @Override
                          public boolean isEntityApplicable(Entity entity) {
                                          return entity instanceof EntityLivingBase;
                          
                          }
                                  };
                          }
                          
                          @Override
                          public void readFromNBT(NBTTagCompound compound) {
                          super.readFromNBT(compound);
                          this.username = compound.getString("Player");
                          }
                          
                          @Override
                          public void writeToNBT(NBTTagCompound compound) {
                          super.writeToNBT(compound);
                          compound.setString("Player", this.username);
                          }
                          
                          public void setUsername(String playerPseudo) {
                          this.username = playerPseudo;
                          }
                          
                          public String getUsername(){
                          return this.username;
                          }
                          
                          @Override
                          public void updateEntity(){
                          if(this.worldObj != null && username != null){
                          List listEntity = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.worldObj.getPlayerEntityByName(username), this.getRenderBoundingBox().expand(20D, 20D, 20D), iEntitySelector);
                          if(!listEntity.isEmpty()){
                          EntityLivingBase entity = (EntityLivingBase) listEntity.get(0);
                          TileEntitySentryObjRenderer.entityPosX = entity.posX;
                          TileEntitySentryObjRenderer.entityPosY = entity.posY;
                          TileEntitySentryObjRenderer.entityPosZ = entity.posZ;
                          TileEntitySentryObjRenderer.turretPosX = this.xCoord;
                          TileEntitySentryObjRenderer.turretPosX = this.yCoord;
                          TileEntitySentryObjRenderer.turretPosX = this.zCoord;
                          }
                          }
                          }
                          
                          }
                          

                          La classe du tileobjrenderer

                          ​package fr.lefgolas.TurretsMod.client;
                          
                          import javax.vecmath.Vector3d;
                          
                          import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
                          import net.minecraft.tileentity.TileEntity;
                          
                          import org.jglrxavpok.glutils.TessellatorModel;
                          import org.jglrxavpok.glutils.TessellatorModelEvent;
                          import org.jglrxavpok.glutils.TessellatorModelEvent.RenderGroupEvent;
                          import org.lwjgl.opengl.GL11;
                          import org.lwjgl.util.vector.Vector;
                          
                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                          import fr.lefgolas.TurretsMod.TurretsMod;
                          
                          public class TileEntitySentryObjRenderer extends TileEntitySpecialRenderer {
                          
                          public static double entityPosX;
                          public static double entityPosY;
                          public static double entityPosZ;
                          
                          public static double turretPosX;
                          public static double turretPosY;
                          public static double turretPosZ;
                          
                          private TessellatorModel modelHaut, modelBas;
                          double angleX, angleY,angleZ;
                          
                          public TileEntitySentryObjRenderer() {
                          entityPosX = 0;
                          entityPosY = 0;
                          entityPosZ = 0;
                          turretPosX = 0;
                          turretPosY = 0;
                          turretPosZ = 0;
                          modelHaut = new TessellatorModel("/assets/" + TurretsMod.MODID + "/models/HautTurret.obj");
                          modelHaut.setID("sentryHaut");
                          modelHaut.regenerateNormals();
                          modelBas = new TessellatorModel("/assets/" + TurretsMod.MODID + "/models/BasTurret.obj");
                          modelBas.regenerateNormals();
                          TessellatorModel.MODEL_RENDERING_BUS.register(this);
                          }
                          
                          @SubscribeEvent
                              public void onPreRenderModel(TessellatorModelEvent.RenderPre event)
                              {
                                  if(event.model.getID() != null && event.model.getID().equals("sentryHaut")){
                                  Vector3d vectorXTurret = new Vector3d(0,5,0);
                                  Vector3d VectorXEntity = new Vector3d(0,entityPosX-(turretPosX),0);
                                  System.out.println("vecteur turret: " + vectorXTurret.y);
                                  System.out.println("vecteur entité: " + VectorXEntity.y);
                                  this.angleY = vectorXTurret.angle(VectorXEntity);
                                  System.out.println(this.angleY);
                                  this.angleX = 180 * this.angleY / Math.PI;
                                  System.out.println(this.angleY);
                                  }
                          
                              }
                          
                          @SubscribeEvent
                              public void onPreRenderGroup(RenderGroupEvent.Pre event)
                              {
                                  if(event.model.getID() != null)
                                  {
                                      if(event.model.getID().equals("sentryHaut"))
                                      {
                                          if(event.group.equals("sentryHaut"))
                                          {
                                              GL11.glPushMatrix();
                                              //point de rotation perso
                                              //double x = 0;
                                              //double y = 6;
                                              //double z = 0;
                                              //GL11.glTranslated(x, y, z);
                                              GL11.glRotated(this.angleY, 0, 1, 0);
                                              //GL11.glTranslated(-x, -y, -z);
                                          }
                                      }
                                  }
                              }
                          
                          @SubscribeEvent
                              public void onPostRenderGroup(RenderGroupEvent.Post event)
                              {
                                  if(event.model.getID() != null)
                                  {
                                      if(event.model.getID().equals("sentryHaut"))
                                      {
                                          if(event.group.equals("sentryHaut"))
                                          {
                                              GL11.glPopMatrix();
                                          }
                                      }
                          
                                  }
                              }
                          
                          @Override
                          public void renderTileEntityAt(TileEntity tileentity, double x, double y,
                          double z, float partialTick) {
                          GL11.glPushMatrix();
                          GL11.glTranslated(x + 0.5, y, z + 0.5);
                          GL11.glShadeModel(GL11.GL_SMOOTH);
                          modelBas.render();
                          modelHaut.render();
                          GL11.glPopMatrix();
                          }
                          }
                          

                          Après pour la rotation vers le haut ou vers le bas Je pense que ça vient du point de rotation qu’il faudrait ajuster (grâce à GLtranslated). Mais comment le visualiser afin de pouvoir le déplacer? Faire par tâtonnement est impossible quand on ne sais pas ou il est au départ et ou on veut qu’il arrive!

                          1 réponse Dernière réponse Répondre Citer 0
                          • gargan
                            gargan dernière édition par

                            Je me suis demander si sa ne venait pas de mon “détecteur d’entité” dans la fonction updateEntity du coup j’ai remplacé par

                            ​ public void updateEntity(){
                            
                            if(this.worldObj != null && username != null){
                            //List listEntity = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.worldObj.getPlayerEntityByName(username), this.getRenderBoundingBox().expand(20D, 20D, 20D), iEntitySelector);
                            
                            //if(!listEntity.isEmpty()){
                            //EntityLivingBase entity = (EntityLivingBase) listEntity.get(0);
                            EntityPlayer entity = this.worldObj.getPlayerEntityByName("gargan");
                            if(entity != null){
                            TileEntitySentryObjRenderer.entityPosX = entity.posX;
                            TileEntitySentryObjRenderer.entityPosY = entity.posY;
                            TileEntitySentryObjRenderer.entityPosZ = entity.posZ;
                            TileEntitySentryObjRenderer.turretPosX = this.xCoord;
                            TileEntitySentryObjRenderer.turretPosX = this.yCoord;
                            TileEntitySentryObjRenderer.turretPosX = this.zCoord;
                            }
                            //}
                            }
                            }
                            

                            Mais toujours le même problème pas de rotation…

                            1 réponse Dernière réponse Répondre Citer 0
                            • gargan
                              gargan dernière édition par

                              @‘Bowser338’:

                              ce qu’il veut a mon avis et j’ai pas encore trouvé perso c’est de bouger le point de rotation sans bouger le shape

                              D’où l’Intérêt du

                              ​GL11.Translated(-x,-y,-z);
                              

                              Avant le model.render();
                              Le problème c’est que l’ajuster quand on ne le voit pas…
                              Une solution pour le rendre visible?
                              J’ai penser à essayer de le dessiner avec tesselator
                              Tessellator t = Tessellator.instance;
                              t.startDrawingQuads();//method 1
                              t.draw();//method 2

                              Mais sa ne marche pas vraiment…

                              De toute façon je n’arrive pas à calculer l’angle y 😞 , le seul axe qui est correct…

                              1 réponse Dernière réponse Répondre Citer 0
                              • gargan
                                gargan dernière édition par

                                Quelqu’un?

                                1 réponse Dernière réponse Répondre Citer 0
                                • 1 / 1
                                • Premier message
                                  Dernier message
                                Design by Woryk
                                Contact / Mentions Légales

                                MINECRAFT FORGE FRANCE © 2018

                                Powered by NodeBB