我正在创造一个游戏,如果敌人在一定范围内并且在玩家面前玩家可以攻击敌人。我已经计算出半径距离并使其朝向前方,这取决于玩家面对的方式,但我如何创建角度,使其像玩家一样呈锥形。我有一张图片。细绿线是我计算出的半径,但我如何计算红锥。
以下是更好理解的图片
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;
}
}
}
答案 0 :(得分:0)
您可以使用tangent的定义:
tan(a/2) = s/(2d)
其中s
是敌人的大小(diamerer),d
是距离敌人的最短距离。这里a
是总可见角度(两条红线之间)。