Показать сообщение отдельно
Старый 16.09.2005, 19:12
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Скажем у тебя пазл 100 на пикселей. В пазлов 5 на 5. То есть координаты верхнего правого угла вычисляются по формуле c=n*20, где N это условная позиция (0-4). Можно задать еще уровень привязки (snap). Скажем в 5 пикселей.
На выходе получаем:
Код:
snap = 5;
step = 20;
newC = function (arg) {
	var n = Math.round (arg / step);
	var s = Math.abs (arg - n * step);
	if (s <= snap) {
		return n * step;
	} else {
		return arg;
	}
};
trace (newC (-6));
trace (newC (-5));
trace (newC (0));
trace (newC (4));
trace (newC (6));
trace (newC (14));
trace (newC (16));
__________________
(и)Нильс.ru | Плагины для FlashDevelop