我该如何计算角度

时间:2013-04-14 11:50:31

标签: trigonometry

我正在创造一个游戏,如果敌人在一定范围内并且在玩家面前玩家可以攻击敌人。我已经计算出半径距离并使其朝向前方,这取决于玩家面对的方式,但我如何创建角度,使其像玩家一样呈锥形。我有一张图片。细绿线是我计算出的半径,但我如何计算红锥。

以下是更好理解的图片

http://tinypic.com/view.php?pic=28v63h0&s=6

这是我到目前为止所做的事情

{
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.events.MouseEvent;
    import flash.ui.Keyboard;

    public class Player extends MovieClip
    {

        var radius:Number = 60;

        public function Player()
        {
            addEventListener(Event.ENTER_FRAME, Update);
        }   

        function Update(event:Event)
        {       
            var radiusx:Number = x+radius*Math.cos(rotation/180*Math.PI);
            var radiusy:Number = y+radius*Math.sin(rotation/180*Math.PI);

            // Rotate to mouse;
            var dx = parent.mouseX - x;
            var dy = parent.mouseY - y;
            var angle = Math.atan2(dy,dx) / Math.PI * 180;
            rotation = angle;

        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用tangent的定义:

tan(a/2) = s/(2d)

其中s是敌人的大小(diamerer),d是距离敌人的最短距离。这里a是总可见角度(两条红线之间)。