Я симулирую летающую стрелу, но она выглядит не очень естественно.
Вот скриншот:
Якорьмувиклип со стрелкой находится в передней части стрелки, как вы можете видеть, но если я заменим его на середину, он все равно не будет выглядеть идеально, у кого-нибудь есть опыт с чем-то вроде этого?
Вотмой код тоже:
//...
//'math' isn't the default 'Math' class, it calculates some physics stuff.
private function updateArrow()
{
var y0:Number = 50;
var v:Number = 100;
var angle:Number = math.getRadians(45);
if(!arrowstartposition)
{
arrowstartposition = activearrow.x;
arrowdistance = math.calcDistance(y0,v,angle);
}
var currentdistance:Number = Math.abs(activearrow.x - arrowstart);
if(currentdistance <= arrowdistance)
{
var currentvelocity:Number = math.calcVelocity(currentdistance, v, angle);
var addvalue:int = 1; //Math.round(currentvelocity / 4);
activearrow.x += addvalue;
currentdistance += addvalue;
var arrowheight:Number = math.calcHeight(currentdistance,y0,v,angle);
var vx:Number = v * Math.cos(angle);
var vy:Number = - (v * Math.sin(angle) - 9.81 * (currentdistance / arrowdistance) * math.calcTimeOfFlight(y0, v, angle));
var currentangle:Number = Math.atan2(vy,vx);
activearrow.y = y0 - arrowheight;
activearrow.rotation = math.getDegrees(currentangle);
}
else
{
arrowstart = undefined;
arrowdistance = undefined;
activearrow = null;
}
}