Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2010, 13:27
newProger вне форума Посмотреть профиль Отправить личное сообщение для newProger Найти все сообщения от newProger
  № 1  
Ответить с цитированием
newProger

Регистрация: Jan 2010
Сообщений: 1
По умолчанию Сталкновение шаров

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

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

Код 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, время: 03:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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