Alex_beginner ваше замечание учел, поправил код, попробывал hitTest (в общем в исходнике 3 разных способа обнаружения сталкновения) результат не очень красивый зато вроде мячь не проскакивает насквозь, но вот проблема с залипанием на биту осталась ((( причем она выевляеться когда скорость биты равна 0, пробывал сравить условие чтоб никогда не была равна нулю...при этом она липнет и дергаясь отлетает...я думаю что всетаки я чтото напартачил с функцией реакции на столкновение function reaction(). об этой функции рассказываеться в книге "Секреты разработки игр в Macromedia Flash MX" Джоб Макар вот так она выглядит у него для двух шаров типа бильярд:

Код:
function reaction(b1, b2, x1, x2, y1, y2, time) {
var mass1 = b1.mass;
var mass2 = b2.mass;
var xVel1 = b1.xmov;
var xVel2 = b2.xmov;
var yVel1 = b1.ymov;
var yVel2 = b2.ymov;
var run = (x1-x2);
var rise = (y1-y2);
var theta = Math.atan2(rise, run);
var costheta = Math.cos(theta);
var sintheta = Math.sin(theta);
var xVel1prime = xVel1*costheta+yVel1*sintheta;
var xVel2prime = xVel2*costheta+yVel2*sintheta;
var yVel1prime = yVel1*costheta-xVel1*sintheta;
var yVel2prime = yVel2*costheta-xVel2*sintheta;
var P = (mass1*xVel1prime+mass2*xVel2prime);
var V = (xVel1prime-xVel2prime);
var v2f = (P+mass1*V)/(mass1+mass2);
var v1f = v2f-xVel1prime+xVel2prime;
var xVel1prime = v1f;
var xVel2prime = v2f;
var xVel1 = xVel1prime*costheta-yVel1prime*sintheta;
var xVel2 = xVel2prime*costheta-yVel2prime*sintheta;
var yVel1 = yVel1prime*costheta+xVel1prime*sintheta;
var yVel2 = yVel2prime*costheta+xVel2prime*sintheta;
var b1.tempx = b1.xpos+b1.xmov*time;
var b1.tempy = b1.ypos+b1.ymov*time;
var b2.tempx = b2.xpos+b2.xmov*time;
var b2.tempy = b2.ypos+b2.ymov*time;
var b1.xmov = xVel1;
var b2.xmov = xVel2;
var b1.ymov = yVel1;
var b2.ymov = yVel2;
}
что я делаю не так? Спасибо