Compte tenu de l'image ci-dessus avec des tuiles divisées en cases 32x32, j'ai une entité qui est marquée pour "aggro" les joueurs à proximité qui s'en approchent. J'aimerais que ce monstre poursuive idéalement le joueur (et continue de chasser le joueur pendant un certain temps). Actuellement, mon seul mouvement est effectué par un simple interpolateur pour les entités distantes et cela fonctionne parce que les écarts entre les mises à jour des mouvements sont plutôt faibles.
Je ne peux pas simplement dire au client que le monstre veut se déplacer vers la position où il se trouve, car cela entraînera le déplacement de l'entité beaucoup plus rapidement qu'il ne le devrait (cela peut probablement être résolu en utilisant des mathématiques pour l'interpolation co -efficace) mais plus important encore, il ne semble pas réaliste et peut couper les murs! Je ne veux pas simuler l'intégralité du mouvement sur le serveur si cela peut être évité ... bien que je suppose que oui, mais cela ne résoudra toujours pas le problème d'écrêtage. Je soupçonne que la solution implique une recherche de chemin et l'envoi au client de mises à jour périodiques du nœud et de les laisser simuler le mouvement, mais je ne suis pas sûr.
Merci!
la source
En fait, c'est simple à faire. La direction du mouvement sera la position cible moins la position actuelle. Tout ce que vous avez à faire est de réduire ce vecteur à la vitesse de déplacement que vous souhaitez réellement. Répétez chaque image.
Vous devez simuler le mouvement sur le serveur. Sinon, comment saurez-vous que tous les joueurs ont le même comportement?
Vous aurez besoin de quelques informations de base. A * est la norme. Vous pouvez calculer un chemin vers la cible, puis suivre ce chemin consiste simplement à définir des vecteurs de mouvement comme ci-dessus. (Ou vous pouvez utiliser des comportements de pilotage comme dans la réponse de Byte56, qui est essentiellement la même chose avec quelques extras ajoutés.)
la source