as3我试图让玩家从墙上反射相反的程度

时间:2014-11-15 20:49:26

标签: actionscript-3 move angle hittest

现在我的球员从挡墙向相反方向移动,除了右侧。 我跟踪了x / y修改的值,发现x总是正的。 使物体一直向左移动。 我不明白为什么因为它与y一起工作。 这个错误或我的代码是错的 非常感谢你。

//------------------------0
var wallAngle:Number;
wall.addEventListener(Event.ENTER_FRAME, reflect);
function reflect(e:Event):void
{
    if (mcPlayer.hitTestObject(wall)){
        wallAngle = getAngle(mcPlayer.x, mcPlayer.y, wall.x, wall.y)        
        mcPlayer.y -= 5*(Math.sin(wallAngle*(Math.PI/180)));
        mcPlayer.x -= 5*(Math.cos(wallAngle*(Math.PI/180)));
        trace("sin "+ String(Math.sin(wallAngle*(Math.PI/180))));
        trace("cos "+ String(Math.cos(wallAngle*(Math.PI/180))));
    }
}
function getAngle (x1:Number, y1:Number, x2:Number, y2:Number):Number
{
    var dx:Number = x2 - x1;
    var dy:Number = y2 - y1;
    return (Math.atan2(dy,dx));//return Redians
}

0 个答案:

没有答案