Problème Box de Collision



  • Bonjour j'ai créé un Bloc avec un rendu techne qui à une forme d'un rectangle de 3 par 2 malheureusement je n'arrive pas à modifier la Box de collision pourtant la hitbox marche parfaitement …

    j'ai essayé de modifier la deuxième fonction mais sans aucun succès ...

    @SideOnly(Side.CLIENT)
       public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z)
       {
         return AxisAlignedBB.getBoundingBox(x + 1, y + 0, z + 0, x - 0.77, y + 1, z + 3.15);
       }
    
       public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z)
       {
         return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY ,z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
       }
    

    Voila merci d'avance



  • Que l'on soit bien d'accord : "Box de collision" = "hitbox". La réponse est là : http://www.minecraftforgefrance.fr/showthread.php?tid=1509#classe5


  • Administrateurs

    Salut,
    Cette question a déjà été posé plusieurs fois et la réponse à aussi été donné plusieurs fois.
    Pour faire court, le code utilise la fonction world.getBlock(coordonnée de l'entité qui rentre en collision avec le bloc).getCollisionBoundingBoxFromPool(world, coordonnée de l'entité qui rentre en collision avec le bloc). pour vérifier les collisions.
    C'est pour cela que ton z + 3.15 ne fonctionne pas du tout. Car 3 bloc à coté il y a de l'aire et comme l'aire a une collision null, tu peux traverser.

    La solution : faire comme les portes. Lorsque tu poses un bloc, il faut poser plusieurs blocs (avec un metadata différent) et une collision adapté. Ensuite lorsque tu détruis un bloc il faut retirer ce qui sont autours avec.
    Quand tu as juste un bloc de 1x2x1 c'est assez simple à gérer, c'est comme la porte, il faut deux bloc. Mais quand ton bloc fait 1x2x3 c'est déjà plus complexe. (plus de cas à prendre en compte, donc plus de condition).



  • d'accord merci je me doutais de cette réponse mais je ne les pas trouvé sur le forum en concret bon bah j'ai un peu de boulot merci 😉