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

      Personne n’a d’idée 😮 ?
      Je pensais pourtant que c’était moins compliqué mon dernier problème ^^’

      ^^

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

        Est-ce que tu pourrais clarifier un peu tes noms de variables ?
        Parce que j’ai du mal à identifier à quoi elles correspondent…


        Über Networking Antennas

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

          En soit le viseur est récupéré de là : https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/main/items/ItemNanomiteArrowGun.java#L127-L144
          Après je l’ai modifié “à ma sauce” pour créer une particule
          Ce que j’en comprends (je ne connais pas très bien Vec3) c’est qu’il récupère toute les entités vues par le joueur ensuite il vérifie si c’est une EntityLivingBase (ex:une vache) ensuite il doit vérifier si c’est bien au centre de l’écran, vérifie si il n’y a pas de bloc et si le joueur n’est pas au sol afin de faire spawn la particle qui est censé être tuer dès que le joueur touche le sol et si le mob bouge pendant ce temps la particule est censé se téléporter à ses coordonnées

          ^^

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

            Et non ! Là il récupère tous les mobs AUTOUR du joueur. Ca explique tous tes problèmes.


            Über Networking Antennas

            1 réponse Dernière réponse Répondre Citer 0
            • 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