一般来说,游戏角色自动寻路寻找某位npc,为了显得更自然,都会走到目标npc附近,而不是npc所在的坐标点,这时寻路后人物的朝向往往便无法保证。
如今很多的游戏,人物都会有八个方向,为了让游戏更加逼真,在寻路到npc附近时,需要让角色朝向npc,那么如何确定人物朝向呢?我们可以根据角色和npc与Y周之间的夹角来判断。
当角色在目标npc的75~105度位置则角色应该朝向左边,在15~75时,则应该朝向左上方,如此类推。那么问题其实可以化为简单的平面数学问题。
在一平面内,角色坐标p1(x1,y1,) npc坐标p2(x2,y2)
我们以npc的坐标为参考系,那么p2将变为(0,0), p1将变为(x1-x2,y1-y2),我们可以将p1视为一向量,求向量的角度
var angle:Number = Math.atan2(p1.x,p1.y);
求