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

Регистрация: May 2010
Сообщений: 14
Question Помогите с коллизией

Всем привет. Дело такое - я нахожу столкновение шара с линией, всё понятно, но как сделать так, чтобы шар не "проваливался" в линию, а был как бы на ней (это нужно для большой скорости).
чтобы вот так вот размещался:


вот код (line - клип, в котором находятся точки A и В, координаты которых нам нужны, и circle - круг):
Код AS1/AS2:
circle.onEnterFrame = function() {
	line.a = {x:line.A._x, y:line.A._y};
	line.b = {x:line.B._x, y:line.B._y};
	line.localToGlobal(line.a); line.localToGlobal(line.b);
	globalToLocal(line.a); globalToLocal(line.b);
	line.angle1 = Math.atan2(line.b.y-line.a.y, line.b.x-line.a.x);
	line.angle2 = Math.atan2(this._y-line.a.y, this._x-line.a.x);
	line.angle = line.angle1-line.angle2;
	line.hypot = Math.sqrt((this._x-line.a.x)*(this._x-line.a.x)+(this._y-line.a.y)*(this._y-line.a.y));
	line.dist = line.hypot*Math.cos(line.angle);
	line.x = line.a.x+line.dist*Math.cos(line.angle1);
	line.y = line.a.y+line.dist*Math.sin(line.angle1);
	line.distance = Math.sqrt((this._x-line.x)*(this._x-line.x)+(this._y-line.y)*(this._y-line.y));
        if(line.distance<=this._width/2) {
        trace("col");
        /*И здесь надо что-то написать, но что?..*/
        }
}