【问题标题】:AS3: move object in its rotation angleAS3:以旋转角度移动对象
【发布时间】:2011-11-20 21:25:01
【问题描述】:

所以我现在有一半有效的东西,我说它一半有效,因为它似乎以某种方式将角度圆整到最近的 45 度左右,这里是代码:

public function drive(e:Event)
{
    speedX =Math.sin(carObj.rotation*(Math.PI/180))*2;
    speedY = Math.cos(carObj.rotation*(Math.PI/180))*2*-1;
    carObj.x +=  speedX * speed;
    carObj.y +=  speedY * speed;
}

有没有人知道一种更好的方法,可以得到准确的(至少肉眼无法分辨)旋转角度,并以给定的速度沿该方向平移物体。

【问题讨论】:

    标签: flash actionscript-3 actionscript


    【解决方案1】:

    没关系解决:

    var carAngle:Number = carObj.rotation * Math.PI / 180;
    carObj.x = carObj.x + speed * Math.cos(carAngle);
    carObj.y = carObj.y + speed * Math.sin(carAngle);
    

    【讨论】:

      【解决方案2】:

      //击中某物后的旋转,然后与前面的脸以某个角度移动...

      var speedX:Number = randomRange(-10,10); // function generating random numbers
      var speedY:Number  = randomRange(-10,10);
      
      carObj.x += speedX;
      carObj.y += speedY;
      
      function calculateAngle()
      {
       var radians:Number = 180 / Math.PI;
       //Calculate rotation
       var walkdirection = - (Math.atan2(tempAlien_mc.oldX - tempAlien_mc.x, tempAlien_mc.oldY - tempAlien_mc.y))*radians;
       //Rotating Car
       tempAlien_mc.rotation = walkdirection;
      }
      
      function randomRange(minNum:Number, maxNum:Number):Number   
      {  
        return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);  
      }
      

      【讨论】:

        猜你喜欢
        • 2018-05-14
        • 2018-12-17
        • 2010-10-04
        • 2014-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多