public static moveDirection(oldPos: egret.Point,newPos: egret.Point,lastDirection = null):number{//返回方向 //計算角度、方向 Math.atan2根據兩點座標計算到oldPos的弧度 var angleSpeed: number = Math.atan2(newPos.y - oldPos.y,newPos.x - oldPos.x); //弧度轉化為角度 角度= 弧度*180/π var N = angleSpeed * 180 / Math.PI; if(oldPos.y == newPos.y && oldPos.x == newPos.x) { if(lastDirection == null){ return EnumManager.DIRECTION_ENUM.DIR_UP_RIGHT; } return lastDirection; } else { if(N <= 20 && N >= -20) { return EnumManager.DIRECTION_ENUM.DIR_RIGHT; } else if(N <= 110 && N >= 70) { return EnumManager.DIRECTION_ENUM.DIR_DOWN; } else if(N <= -160 || N >= 160) { return EnumManager.DIRECTION_ENUM.DIR_LEFT; } else if(N <= -70 && N >= -110) { return EnumManager.DIRECTION_ENUM.DIR_UP; } else if(N < 70 && N > 20) { return EnumManager.DIRECTION_ENUM.DIR_DOWN_RIGHT; } else if(N < 160 && N > 110) { return EnumManager.DIRECTION_ENUM.DIR_DOWN_LEFT; } else if(N < -110 && N > -160) { return EnumManager.DIRECTION_ENUM.DIR_UP_LEFT; } else if(N < -20 && N > -70) { return EnumManager.DIRECTION_ENUM.DIR_UP_RIGHT; } return EnumManager.DIRECTION_ENUM.DIR_DOWN; } }
//弧度轉化為角度 角度= 弧度*180/π
//角度轉弧度 弧度=角度*π/180
從某種意義上來說,π就相當於180°,哈哈,又回到高數了,還是熟悉的味道