Показать сообщение отдельно
Старый 23.01.2010, 22:51
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Если проверка дает false - отключайте строки, где у вас идет назначение координат (поместите их в условный оператор).
Тогда при резких движениях объект будет останавливаться не доезжая до края круга

Так красивше будет (псевдокод):
Код AS1/AS2:
x0 = ...
y0 = ... // координаты центра
r = ... // радиус
var distance = Math.sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0))
if (distance > r)
{
     //раз distance > r, а r > 0, то distance никак не равно нулю - смело делим
     var sin = (y - y0) / distance;
     var cos = (x - x0) / distance;
     x = r * cos;
     y = r * sin;//пододвигаем координаты так, чтобы не вылазили из круга
}
Должно выглядеть не так раздражающе, как залипание объекта, не дошедшего до границы