English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



3. Мы добавляем функцию под названием ball2BallReaction(). Эта функция вычисляет, каковы должны быть новые векторные скорости каждого шара после столкновения. Функция ball2BallReaction() представлена ниже: 1 function ball2BallReaction(b1,b2,x1,x2,y1,y2,time){ 2 //найти массы 3 var mass1 =b1.mass; 4 var mass2 =b2.mass; 5 //-----установить переменные начальных векторных скоростей 6 var xVel1 =b1.xmov; 7 var xVel2 =b2.xmov; 8 var yVel1 =b1.ymov; 9 var yVel2 =b2.ymov; 10 var run =(x1-x2); 11 var rise =(y1-y2); 12 var Theta =Math.atan2(rise,run); 13 var cosTheta =math.cos(Theta); 14 var sinTheta =math.sin(Theta); 15 //найти векторные скорости вдоль линии действия 16 var xVel1prime =xVel1*cosTheta+yVel1*sinTheta; 17 var xVel2prime =xVel2*cosTheta+yVel2*sinTheta; 18 //найти векторные скорости, перпендикулярные линии действия 19 var yVel1prime =yVel1*cosTheta-xVel1*sinTheta; 20 var yVel2prime =yVel2*cosTheta-xVel2*sinTheta; 21 //уравнения сохранения 22 var P =(mass1*xVel1prime+mass2*xVel2prime); 23 var V =(xVel1prime-xVel2prime); 24 var v2f =(P+mass1*V)/(mass1+mass2); 25 var v1f =v2f-xVel1prime+xVel2prime; 26 var xVel1prime =v1f; 27 var xVel2prime =v2f; 28 //проецирование в систему координат Flash на оси x и y 29 var xVel1 =xVel1prime*cosTheta-yVel1prime*sinTheta; 30 var xVel2 =xVel2prime*cosTheta-yVel2prime*sinTheta; 31 var yVel1 =yVel1prime*cosTheta+xVel1prime*sinTheta; 32 var yVel2 =yVel2prime*cosTheta+xVel2prime*sinTheta; 33 //изменение старой позиции 34 b1.tempx =b1.xpos+bl.xmov*time; 35 b1.tempy =b1.ypos+b1.ymov*time; 36 b2.tempx =b2.xpos+b2.xmov*time; 37 b2.tempy =b2.ypos+b2.ymov*time; 38 b1.xmov =xVel1; 39 b2.xmov =xVel2; 40 b1.ymov =yVel1; 41 b2.ymov =yVel2; 42 } Строки 2-9 этого кода ActionScript обрабатывают инициализацию всех переменных, которые нам нужны от объектов ball. Инициализированные переменные представляют собой векторные скорости по x и y каждого шара и их массы
Hosted by uCoz