Развитие игровой вспышки
Текущее время: Вс фев 18, 2018 7:28 am

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Портировать код из Box2D на p2.physics (Phaser)
СообщениеДобавлено: Сб янв 13, 2018 12:44 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср апр 24, 2013 8:13 pm
Сообщений: 436
Откуда: Ukraine
Здравствуйте друзья, занимаюсь портированием флеш игры на фазер, использую физику р2 и столкнулся с проблемой расчета отскока шарика от боунс платформы.
на боксе это выглядит так
Код:
override public function hit(other:B2DSprite, contact:b2Contact):void
      {
         var wManifold:b2WorldManifold = new b2WorldManifold;
         contact.GetWorldManifold(wManifold);
         
         // initial velocity
         var v:b2Vec2 = other.body.GetLinearVelocity().Copy();
         v.Normalize();
         
         // normal
         var n:b2Vec2 = wManifold.m_normal.Copy();
         if (contact.GetFixtureA().GetBody() != this.body) n.NegativeSelf();
         
         // ray
         var r:b2Vec2 = b2Math.AddVV(v, b2Math.MulFV( -2 * b2Math.Dot(v, n), n));
         
         // inbetween the ray and the normal
         var newVel:b2Vec2 = b2Math.MulFV(0.5, b2Math.AddVV(n, r));
         newVel.Multiply(other.body.GetLinearVelocity().Length());
         
         // set new velocity
         other.body.SetLinearVelocity(newVel);
      }

помогите пожалуйста разобрать этот код


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Портировать код из Box2D на p2.physics (Phaser)
СообщениеДобавлено: Сб янв 13, 2018 4:20 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср апр 24, 2013 8:13 pm
Сообщений: 436
Откуда: Ukraine
Взял открыл исходники бокса и оттуда содрал всю матиматику, единственное что осталось неясным что такое

Код:
var wManifold:b2WorldManifold = new b2WorldManifold;
contact.GetWorldManifold(wManifold);


вот тут я увидел у него достают какие-то координаты

Код:
var n:b2Vec2 = wManifold.m_normal.Copy();


я подумал что это точка столкновения, потому передаю туда координаты нашего шарика который столкнулся с платформой.

Прав ли я друзья? Попробовал вроде все работает.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB