Bonjour,
Je me suis lancé il y a peu dans l'aventure de créer mon propre éditeur isométrique (2D donc).
N'étant pas matheux, j'ai errer sur google, stackoverflow et ici même (http://www.developpez.net/forums/d78...-isometriques/) à la recherche de formules.
L'affichage, la gestion des offsets/layers fut un succés, jusqu'au moment fatidique de la gestion du click sur une tile... Cela fait maintenant un mois que j'essaye de pouvoir cliquer sur mes tiles(rires).
(Dans ce post, je ne prendrais pas en compte les offsets)
J'ai des tiles de dimensions TILE_SIZE * TILE_SIZE (bien sur, de 32 * 32, 64 * 64, etc...).
Pour les biens des tests, j'ai donc choisi 64 * 64.
La formule isometricToScreenCoordinates(i, j, TILE_SIZE) me permet de placer mes tiles :
Ce que je souhaite faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 x = (j - i) * (TILE_SIZE / 2); y = (j + i) * (TILE_SIZE / 4);
1) Screen coordinates => Isometric coordinates => tile_index (Chaque tile étant des informations stockées dans un tableau (vector<Tile>) dans un layer(Class))
Puis, avec le sprite mouse map :
2) Detecter sur quelle tile on clique(cette partie ne me pose pas de problèmes), et changer tile_index en fonction(La partie blanche correspond au tile_index trouvé en 1).
Mon problème : les formules du lien pour 1) ne fonctionnent pas pour mon projet(ou je ne les comprends peut-être pas assez bien ?), et je ne sais pas comment trouver tile_index avec i, j
PS: J'ai entendu parler de sqrt, matrix de transformations, etc. ... : Etant entrain de me remettre doucement dans les mathématiques, ce n'est pour le moment pas vraiment de mon niveau hélas.
Merci de votre lecture, pour toutes informations manquantes, n'hésitez pas à me le demander.
Bonne journée !
Partager