Tu peux trouver la formule très simplement, elle dépend de la case de départ, pour aller au nord-ouest (de X,Y à X',Y') par exemple on a :
X' = X si Y est impair, X-1 sinon
Y' = Y-1
La valeur de X' peut être très simplement exprimée avec les modulos : X' = X-1+Y%2
Si Y est impair Y%2 = 1 et X' = X-1+1 = X
Si Y est pair Y%2 = 0 et X' = X-1+0 = X-1
Tu peux procéder de manière similaire pour les autres calculs de coordonnées voisines posant problème.
Je trouve d'ailleurs bizarre que tu te poses la question car tu as déjà du résoudre ce problème lors de la génération de la map (pour savoir l'X,Y en pixel pour placer ton sprite, il faut déjà suivre ce même résultat pour connaître le décalage).
Tu génères vraiment cette map ? Serait-il possible que tu m'expliques ta méthode car je cherche un moyen simple de passer ma map hexa en isométrique et je galère un peu.
X' = X si Y est impair, X-1 sinon
Y' = Y-1
La valeur de X' peut être très simplement exprimée avec les modulos : X' = X-1+Y%2
Si Y est impair Y%2 = 1 et X' = X-1+1 = X
Si Y est pair Y%2 = 0 et X' = X-1+0 = X-1
Tu peux procéder de manière similaire pour les autres calculs de coordonnées voisines posant problème.
Je trouve d'ailleurs bizarre que tu te poses la question car tu as déjà du résoudre ce problème lors de la génération de la map (pour savoir l'X,Y en pixel pour placer ton sprite, il faut déjà suivre ce même résultat pour connaître le décalage).
Tu génères vraiment cette map ? Serait-il possible que tu m'expliques ta méthode car je cherche un moyen simple de passer ma map hexa en isométrique et je galère un peu.
Ressources [PHP][MySQL][prototype.js]