Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сталкновение шаров (http://www.flasher.ru/forum/showthread.php?t=135344)

newProger 21.01.2010 13:27

Сталкновение шаров
 
Здраствуйте! Во флеше я ещё новичёк и к тому же самоучка! Сейчас пишу игрушку(чемто похожа на бильярд) главная проблема Это обработка сталкновений!

в сети нашёт нижеследующий код:

Код AS3:

private function collideBall(ballA:Ball,ballB:Ball):void
 {
  var plotnost = 0.95;
 
    /**
  * Находим точку столкномвения
  * (Центр отрезка между двумя центрами)
  **/

  var cx = (ballA.tx + ballB.tx)/2;
  var cy = (ballA.ty + ballB.ty)/2;
 
    /**
  * Находим Растояние между шарами
  * (Может быть и меньше 2х радиусов, необходима для выравнивания шара)
  **/

  var d = geom.distance(ballA.tx, ballA.ty, ballB.tx, ballB.ty)/2;
 
    /**
  * Сдвигаем шарики (отскок)
  * (Может быть и меньше 2х радиусов, необходима для выравнивания шара)
  **/

  ballA.tx = cx + (_ballRadius) * (ballA.tx - ballB.tx)/2/d;
  ballA.ty = cy + (_ballRadius) * (ballA.ty - ballB.ty)/2/d;
 
  ballB.tx = cx + (_ballRadius) * (ballB.tx - ballA.tx)/2/d;
  ballB.ty = cy + (_ballRadius) * (ballB.ty - ballA.ty)/2/d;
 
 
    /**
  * Сдвигаем шарики промежуточное положение
  * (Может быть и меньше 2х радиусов, необходима для выравнивания шара)
  **/

  ballB.tx = ballB.tx - ballB.speedX/_delimiter;
  ballB.ty = ballB.ty - ballB.speedY/_delimiter;
 
  ballA.tx = ballA.tx - ballA.speedX/_delimiter;
  ballA.ty = ballA.ty - ballA.speedY/_delimiter;
....................................................................................................
........................................................................

Переменая _delimiter нужна как было указано для предотврашения пролёта одного шара через другой! только вот я никак не пойму как эта переменная должна вычесляться! В примере об этом ничего сказанно небыло! Подскажите кто знает! если есть другие примеры просчета сталкновений буду примного благодарен!!!


Часовой пояс GMT +4, время: 01:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.