
06.04.2013, 20:48
|
|
Регистрация: Oct 2010
Сообщений: 1,049
|
Например так: хранить в модели текущее состояние доски, как двумерный массив булевых значений – ячейка свободна / занята. Про каждый блок мы можем сказать на каких координатах он находится и как сориентирован (вертикально / горизонтально). Этих данных достаточно, чтобы сформировать dragRect (если осуществлять перетаскивание методом startDrag). После отпускания кнопки мышки, смотрим на текущие визуальные координаты блока, вычисляем соответствующие координаты в модели, подгоняем их до целых и перемещаем блок на положенное место. Обновляем модель.
|