Case hexagonales adjacentes
Par -Alexandre LEGOUT aka LAlex- le jeudi, juillet 21 2005, 15:23 - AS2 - Lien permanent
J'ère en ce moment sur un projet de jeu de plateau à porter en Flash. Or, ce jeu se joue avec des cases hexagonales, ce qui a priori rendait le stockage plutôt complique...
Eh bien, il n'en est rien!
Il suffit en fait de stocker les cases dans un "bête" tableau à deux dimensions. C'est juste l'affichage qui diffère un peu, comme l'explique bien cette page. ![]()
Bien que je n'en ai pas spécialement besoin dans mon cas, je n'ai pu m'empêcher de me poser la question du pathfinding sur ce type de cartes. Eh bien, en fait c'est plutôt trés simple, étant donné que la question des diagonales ou des coins à contourner ne se pose plus. Par contre, le problême reste de trouver les cases conjointes à une case donnée. En effet, selon sur quelle "ligne" on se trouve, le test est différent.
Voici la fonction que j'ai implémenté a cette fin :function getNearHexPoints(g:Array, x:Number, y:Number):Array {
var a:Array = new Array();
for (var i=-1 ; i<=1 ; i++) {
for (var j=-1 ; j<=1 ; j++) {
if ((i || j) && (!(i && j) || (y%2 && i == 1) || (!(y%2) && i == -1)) && g[x+i] && g[y+j]) {
a.push({x:x+i, y:y+j});
}
}
}
return a;
}
Et voici son resultat (case cliquables) :
La classe PathFinder qui gère aussi les cases hexagonales ne devrait pas tarder...
Commentaires
le top serait un modele mathématique qui étendrait le pathfinder a divers pavages du plan
mais la ca deviendrait un peu porcasse (la gueule du pathfinder pour une gravure de Escher :p )
Sachant que chaque case a 6 cases adjacentes, le pathfinding va être nettement plus gourmand...
Le pathfinding sur une grille se fait sur 8 cases adjacentes.. ;).
Je pense qu'au contraire, ca permet de garder une fluidité du mouvement (qu'on perd un peu si on élimine les diagonales), tout en optimisant les performances...
++ ^^
A oui, en comptant les diagonales...
Interessant !!!
Du coup on a des coups de déplacements identiques aux 6 cases. Reste le calcul de la distance heuristique qui risque d'être légèrement différent ...
Lut,
Article pas recent du tout, mais j'me demandais si il y avait eu du frais sur ce projet de pathfinfing sur pavage hexagonal i _ i
J'essaye d'adapter une algo mais j'ai des anomalies de partout i _ i
Fil des commentaires de ce billet