现在我的球员从挡墙向相反方向移动,除了右侧。 我跟踪了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
}