MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Pointeur et entité

    Planifier Épinglé Verrouillé Déplacé Sans suite
    15 Messages 3 Publieurs 3.1k Vues 1 Watching
    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.
    • mindany2M Hors-ligne
      mindany2
      dernière édition par

      Hum oui et non, c’est bien ce qui est fait mais au final qu’une seul entité ressort et c’est celle que l’on fixe donc je ne vois pas le rapport ^^’ sauf peut-être qu’en éditant

      ​List entityTagetList = player.worldObj.selectEntitiesWithinAABB(Entity.class, player.boundingBox.expand(64.0D, 64.0D, 64.0D), livingFilter);
      

      ça me permettera d’avoir un rayon plus petit

      ^^

      1 réponse Dernière réponse Répondre Citer 0
      • JustPingoJ Hors-ligne
        JustPingo
        dernière édition par

        En fait, je me rends compte que je disais un peu n’importe quoi. C’est pas autour du joueur, mais autour de sa boundingBox, je sais pas lire. Mais ça revient au même, 64.0D c’est beaucoup trop large pour ce que tu veux faire. Et de toute façon, utiliser une méthode comme ça c’est pas adapté pour cet usage. Tu ferrais mieux de te baser sur l’axe de regard pour calculer la zone vue.


        Über Networking Antennas

        1 réponse Dernière réponse Répondre Citer 0
        • mindany2M Hors-ligne
          mindany2
          dernière édition par

          Tu ferrais mieux de te baser sur les coordonnées précises du joueur pour calculer la zone action par rapport à l’axe de regard. Mais attention, si ça se trouve y a plus simple.

          Bah à ce niveau là je n’y connais pas grand chose en faite
          L’axe du regarde je ne sais pas quelles sont les fonctions pour récupéré les entités vu avec

          ^^

          1 réponse Dernière réponse Répondre Citer 0
          • JustPingoJ Hors-ligne
            JustPingo
            dernière édition par

            Non, je veux dire tu calcules grâce à l’axe de regard une AABB.


            Über Networking Antennas

            1 réponse Dernière réponse Répondre Citer 0
            • mindany2M Hors-ligne
              mindany2
              dernière édition par

              En ligne de code ça donne quoi à peu près ^^’ ?

              ^^

              1 réponse Dernière réponse Répondre Citer 0
              • JustPingoJ Hors-ligne
                JustPingo
                dernière édition par

                Bah c’est à toi de voir, j’ai jamais fait concrètement. Mais en gros tu dois déterminer quelle est la largeur en bloc de ce que tu vois le plus loin entre le bord gauche et le bord droit de l’écran. Ensuite par rapport à l’axe de regard du joueur tu détermines quelle zone cela représente en AABB. Et après tu fais les calculs habituels. Mais ça c’est sans compter si il y a des murs ou non devant le joueur, etc…

                Mais attention, c’est surement pas la chose la plus optimisée d’autant que si c’est mal fait ça peut être très très lourd. Tu ne devrais pas faire comme ça, mais au moins dit toi que ça existe.


                Über Networking Antennas

                1 réponse Dernière réponse Répondre Citer 0
                • T Hors-ligne
                  toss
                  dernière édition par

                  Allez je suis généreux ce soir 🙂

                  Je te renvoie vers le repo de mon mod, ici (c’est ma solution, peut etre pas la meilleur mais le rendu est tres bien):

                  Ligne 74, ma fonction: public Entity getLookingEntity(double range); (range correspondant à la distance de l’entité)

                  [size=medium]https://github.com/iToss/Magic_Crusade_Mod/blob/master/main/java/fr/toss/common/player/spells/Spell.java

                  1 réponse Dernière réponse Répondre Citer 0
                  • mindany2M Hors-ligne
                    mindany2
                    dernière édition par

                    Merci mais le résultat est le même ^^ peut-être en un peu mieux
                    Ce que j’entends par “le même” c’est que j’aimerais que ce soit l’entité la plus proche du joueur dans (à peu près) tout le champ de vision visible à la première personne et même en mettant

                    player.boundingBox.expand(10D, 10D, 10D)
                    

                    j’arrive à viser des entités lointaines

                    ^^

                    1 réponse Dernière réponse Répondre Citer 0
                    • mindany2M Hors-ligne
                      mindany2
                      dernière édition par

                      Pas d’idée ?

                      ​d1 > 1.0D - 0.025000000000000001D / d
                      

                      Ce sont ces chiffres à changer qui me posent problèmes je ne sais pas quoi mettre :s je ne connais pas les vecteur

                      ^^

                      1 réponse Dernière réponse Répondre Citer 0
                      • mindany2M Hors-ligne
                        mindany2
                        dernière édition par

                        Ok donc après avoir essayé plusieurs possibilités et après avoir bien rager dessus 😛 j’ai enfin réussi à faire quelque chose qui marche
                        Maintenant il ne reste “plus qu’à” faire en sorte que ce soit sur tout ce que peux voir le joueur et non le centre et en revanche là je ne sais pas du tout où chercher ne connaissant pas les Vec3

                        ​
                        Vec3 vec3d;
                        Vec3 vec3d1;
                        
                        double d;
                        
                        double d1;
                        
                        double a;
                        
                        double b;
                        
                        double c;
                        
                        vec3d = thePlayer.getLook(1.0F).normalize();
                        
                        vec3d1 = Vec3.createVectorHelper(entity.posX - thePlayer.posX, (entity.boundingBox.minY + (double)(entity.height / 2.0F)) - (thePlayer.posY + (double)thePlayer.getEyeHeight()), entity.posZ - thePlayer.posZ);
                        
                        d = vec3d1.lengthVector();
                        
                        vec3d1 = vec3d1.normalize();
                        
                        d1 = vec3d.dotProduct(vec3d1);
                        
                        if (d1 > 1.0D - 0.025000000000000001D / d)
                        
                        {
                        
                        System.out.println("Looking at " + entity);
                        
                        return (entity);
                        
                        }
                        
                        }
                        

                        Si quelqu’un à une idée et/ou peux m’expliquer Vec3 ce serait vraiment parfait 😄

                        ^^

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB