Войти
speedCut(arrow.fletching_body,1,0); ////// private function speedCut(b:b2Body,xk:Number,yk:Number):void { var spd,spd2:b2Vec2; spd = b.GetLinearVelocity(); spd2 = b.GetLocalVector(spd); spd2.x = spd2.x * xk; spd2.y = spd2.y * yk; spd = b.GetWorldVector(spd2); b.SetLinearVelocity(spd); }
//обрезаем поперечную скорость speedCut(arrow.arrow_body,1,0); //координаты в теле, на которых должен быть "перед" стрелы: (одинаковы при любом повороте, можно задать вначале) var nosePos:b2Vec2 = new b2Vec2( 10/worldScale, 0); //прикладываем к этой точке в теле импульс вниз arrow.arrow_body.ApplyImpulse(new b2Vec2(0,0.01),arrow.arrow_body.GetWorldPoint(nosePos));
Комментарии (17)
Движение шарика по кривой сделано с помощью Box2D?
Когда поиграл в этот прототипчик (в скайп-чате мелькнул), завис не в последнюю очередь именно на клево летающих стрелах! Особенно уместно это в игре, где прямой выстрел встречается реже «баллистического» — там-то вся эта красота и раскрывается.
точна!