Учитывая координаты сетки, как я могу определить центральную точку ячейки, в которую они попадают? - PullRequest
2 голосов
/ 24 августа 2010

Я работаю над простой настольной игрой, использующей Appcelerator Titanium для iPhone (javascript - не то, чтобы это действительно важно для этого вопроса).

Моя проблема на самом деле не зависит от языка, это скорееобщие вопросы программирования и математики.

У меня есть сетка "ячеек", которая составляет 10 столбцов на 10 строк (100 ячеек).Это настольная игра, похожая на шашки / шашки.

Начиная сверху и двигаясь вниз, ряды обозначаются буквами от «A» до «J»

Начиная слева и двигаясь вправо,столбцы помечены от «0» до «9»

Каждая ячейка имеет размер 32x32 (пиксели).

Я могу перетащить токен на / над сеткой, и когда я отпускаю, он сообщаетx / y координаты, где я выпустил, например: 124,302.У меня есть эти координаты, доступные мне в переменных.

Итак, мой вопрос: как мне определить центральную точку ячейки, над которой я выпустил, чтобы я мог центрировать токен в этой ячейке?

Есть идеи, как этого добиться?

1 Ответ

2 голосов
/ 24 августа 2010

Используйте целочисленное деление, чтобы «округлить» необработанные координаты.

x = (x / 32) * 32 + 16;
y = (y / 32) * 32 + 16;

Поскольку числа имеют степень двойки, вы также можете использовать битовые операции.

x = (x & ~0x1F) | 0x10;
...