Étant donné les coordonnées de grille, comment puis-je déterminer le point central d'une cellule dont ils relèvent?
-
30-09-2019 - |
Question
Je travaille sur un jeu de société simple en utilisant Appcelerator Titanium pour iPhone (javascript - pas qu'il importe à cette question vraiment).
Mon problème est pas vraiment spécifique à la langue, il est plus d'une question de programmation générale et en mathématiques.
I possède une grille de « cellules » qui est de 10 colonnes par 10 rangées (100 cellules). Il est un jeu de plateau, comme dames / projets.
En partant du haut vers le bas et se déplaçant, les rangées sont marqués « A » à « J »
À partir de la droite à gauche et en mouvement, les colonnes sont marquées « 0 » à « 9 »
Chaque cellule est 32x32 (pixels).
Je peux faire glisser un jeton sur / sur la grille et quand je relâche, il me rapporte aux coordonnées x / y de l'endroit où je intervenir, ex: 124302. Je ces coords à ma disposition dans les variables.
Alors, ma question est, comment puis-je déterminer le point central de la cellule que je libéré plus, pour que je puisse centrer le jeton dans cette cellule?
Toutes les idées sur la façon d'y arriver?
La solution
Utilisation division entière de "rond" off les coordonnées brutes.
x = (x / 32) * 32 + 16;
y = (y / 32) * 32 + 16;
Parce que les chiffres sont des puissances de deux, vous pouvez également utiliser des opérations de bits.
x = (x & ~0x1F) | 0x10;