bonjours,
alors voila: je suis en train de chercher les fonctions pour placer un damage de tile sur une surface et pour retrouver les tiles correspondante en fonction de coordonnees x,y
pour les tiles rectangulaire ou isometrique ca fonctionne en revanche je voudrais aussi le faire pour des tile en perspective cavaliere ou complétement personalisée. pour cela j'utilise 2 variable ( decalageX & decalageY )
pour la fonction de placement ca marche mais pour retrouver la tile je galere.
tileWidth,tileHeight : hauteur et largeur du cadre contenant la tile
paddingX,paddingY : position du damier par rapport au point d'origine de la surface
decalageX,decalageY : décalage des extrémité par rapport au position normal des angles d'une tile rectangulaire.
donc voila la fonction de placement:
je n'arrive entre autre plus a retrouver comment faire l'inverse d'une opération de type a*b-c*d
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 x = i*(tileWidth-decalageX)-j*decalageX+paddingX; y = j*(tileHeight-decalageY)+i*decalageY+paddingY;
a titre indicatif les operation pour les autres type de placements ( si vous voyez une erreur potentiel ... )
note: j'utilise round car les tiles sont ensuite positionnées par rapport a leur centre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // placement de tiles rectangulaire x = i*tileWidth+paddingX y = j*tileHeight+paddingY // retrouver une tile rectangulaire i = round((x-paddingX)/tileWidth) j = round((y-paddingY)/tileHeight) // placement de tiles isometrique x = (i-j)*(tileWidth/2)+paddingX y = (j+i)*(tileHeight/2)+paddingY // retrouver une tile isometrique i = round((x-paddingX)/tileWidth+(y-paddingY)/tileHeight) j = round((y-paddingY)/tileHeight-(x-paddingX)/tileWidth)
Partager