CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Isometric map A* pathfinding

DébutPage précedente
12
Page suivanteFin
MDA-Hack MDA-Hack
MP
Niveau 9
14 avril 2014 à 15:25:18

Bonjour,

j'ai quelques soucis pour utiliser le a* pathfinding sur une square isometric map.
Voici le résultat : https://www.noelshack.com/2014-16-1397480990-isomappath.png
Je ne sais pas réellement par où commencer pour résoudre mon problème, pour une map carré ou diamond isometric map il n'y a aucun soucis vu que c'est le même algo de base qu'il faut utiliser. Par contre pour une square isometric map ce n'est pas réellement la même chose...

Dans mon image le point bleu signifie le point de départ et les points rouges signifient le chemin du a*. Les points noirs sont dérivés du chemin a*. Mais le résultat ne me plaît pas du tout, j'aimerais savoir aller en diagonal(n-e, s-e, s-w, n-w). Mais je ne sais pas trop comment m'y prendre.
Devrais-je d'abord transformer "ma map" en "map normal", calculer l'a*, puis mettre la "map normal" en "ma map" ?

Je suis un peu perdu pour tout ceci, sachant que je ne trouve pas grand chose sur Google. On trouve beaucoup de sujets sur l'a* en map carré un peu moins en map isométrique et beaucoup moins en map isométrique carré.

Auriez-vous des pistes, idées ou autre à me conseiller ?

Merci d'avance !
MDA.

lokilok lokilok
MP
Niveau 10
14 avril 2014 à 15:53:50

J'arrive pas a comprendre en quoi le fait que ce soit une vue iso' change quelque chose, t'as quand au final juste un tableau 2d de case.

godrik godrik
MP
Niveau 22
14 avril 2014 à 15:57:50

Je ne sais pas comment ton a* est ecrit. Mais il y a certainement un endroit qui decrit "le voisinage" d'une case. Il faut changer ce bout de code pour inclure les diagonales.

Arkwolf Arkwolf
MP
Niveau 17
14 avril 2014 à 16:12:27

On peut se déplacer horizontalement et verticalement (donc en passant par le coin des carrés) pour le même coût ?

Parce que habituellement dans les JV c'est pas le cas, à moins d'utiliser des octogones je suppose :doute:

Ptet pour ça que ça paraît bizarre aussi vu qu'en passant par les "coins" le coût serait le même même si a l'écran on a l'impression de faire un détour pas naturel :(

godrik godrik
MP
Niveau 22
14 avril 2014 à 16:58:21

En general il faut metre un cout de sqrt(2) sur les diagonales pour avoir un mouvement raisonnable.

MDA-Hack MDA-Hack
MP
Niveau 9
14 avril 2014 à 17:15:49

Merci de vos réponses.

En faites j'utilise Slick et il y a déjà un a* programmé de base. J'avais déjà lu cette classe et essayé de changé le voisin d'une cellule mais ça ne fonctionnait pas... Mais j'ai regardé d'un peu plus près et en réalité il y a quelques conditions à respecter que je n'avais pas vu d'assez près !

Cependant je ne trouve toujours pas de résultats concluant à l'idée que j'avais en tête.
Je cherche à reproduire le même style de pathfinding que sur Dofus. Où il préfèrent aller en diagonal que par ligne vertical.

J'espère savoir modifier cette classe pour que je n'ai pas à réécrire un algo a* quand il y en a un déjà fourni.

lokilok lokilok
MP
Niveau 10
14 avril 2014 à 17:22:10

Bof, pour ce genre de truc je trouve ça mieux personnellement de le faire soit-même plutôt que d'utiliser un truc déjà tout fait, c'est pas du tout compliqué a implémenter et ça permet une meilleur compréhension au final.

M'enfin chacun fait comme il veut après.

MDA-Hack MDA-Hack
MP
Niveau 9
14 avril 2014 à 17:27:42

Je crois que c'est ce que je vais faire je n'arrive pas à un beau résultat...

vintrigue vintrigue
MP
Niveau 10
14 avril 2014 à 20:54:40

Il suffirait de modifier quatre lignes dans la plupart des algorithmes A* pour gérer les diagonales.

MDA-Hack MDA-Hack
MP
Niveau 9
14 avril 2014 à 21:10:41

Pour ceux qui aimeraient voir comment Slick gère l'a* voici les source : https://github.com/ariejan/slick2d/blob/master/src/org/newdawn/slick/util/pathfinding/AStarPathFinder.java

vintrigue vintrigue
MP
Niveau 10
14 avril 2014 à 21:19:01

".java"

même avec des gant je clique pas moi. Mais sinon l'implémentation est surement la même que partout ailleurs..

MDA-Hack MDA-Hack
MP
Niveau 9
14 avril 2014 à 21:32:26

No soucis du lien ça vient de github.com
( https://www.google.be/search?q=slick+astarpathfinding+git&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a&channel=sb&gfe_rd=cr&ei=lDdMU_-8DsGujwfIv4D4Bw#channel=sb&q=slick+astar+pathfinding+git&rls=org.mozilla:fr:official&spell=1 )

[-Shana-] [-Shana-]
MP
Niveau 10
14 avril 2014 à 22:39:09

Vintrigue :d) C'est un lien github hein :-))) .

vintrigue vintrigue
MP
Niveau 10
14 avril 2014 à 22:40:29

"".java""

vintrigue vintrigue
MP
Niveau 10
14 avril 2014 à 22:41:38

Je veut dire: le java je touche pas à ça moi :oui: c'est pas un problème de sécurité que j'avais, juste que je n'aime pas être en contact avec de la matière fécale :pf:

Arkwolf Arkwolf
MP
Niveau 17
14 avril 2014 à 22:42:26

C'est juste un troll anti java, circulez :oui:

vintrigue vintrigue
MP
Niveau 10
14 avril 2014 à 22:45:08

un programmeur raisonné anti-java*, merci :oui:

vintrigue vintrigue
MP
Niveau 10
14 avril 2014 à 22:55:19

Bon je viens d'ouvrir cet excrément et visiblement, ligne 146, t'as un booléen "allowDiagMovement" qui devrait regler ton problème directement.
http://sournoishack.com/u/uploads/752460854diahrree.jpg

Arkwolf Arkwolf
MP
Niveau 17
14 avril 2014 à 22:55:47

stop essayer de pourrir le topic :oui:

Arkwolf Arkwolf
MP
Niveau 17
14 avril 2014 à 22:56:15

bon c'est bien tu t'es un peu rattrapé :oui:

DébutPage précedente
12
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment