0

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

这是更好理解的图像

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;

        }
    }
}
4

1 回答 1

0

您可以使用切线的定义:

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

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

于 2013-04-14T11:58:03.553 回答