Javascript CraftyJS如何计算两个精灵之间的矢量?

Javascript CraftyJS如何计算两个精灵之间的矢量?,javascript,math,vector,angle,Javascript,Math,Vector,Angle,我是一个游戏编程高手,数学不太好,我正在尝试写一个1945年风格的射击游戏,到目前为止一切都很好,但我陷入了瓶颈,我无法想出如何让敌人瞄准玩家 假设我有敌人精灵和玩家精灵,我如何找出角度和路径?这听起来像是在计算两点之间的向量,我一直在阅读文档,尤其是这个链接 我就是想不出怎么做,我试过以下方法 var enemyV = Crafty.math.Vector2D(enemy.x, enemy.y); var playerV = Crafty.math.Vector2D(player.x, pla

我是一个游戏编程高手,数学不太好,我正在尝试写一个1945年风格的射击游戏,到目前为止一切都很好,但我陷入了瓶颈,我无法想出如何让敌人瞄准玩家

假设我有敌人精灵和玩家精灵,我如何找出角度和路径?这听起来像是在计算两点之间的向量,我一直在阅读文档,尤其是这个链接

我就是想不出怎么做,我试过以下方法

var enemyV = Crafty.math.Vector2D(enemy.x, enemy.y);
var playerV = Crafty.math.Vector2D(player.x, player.y);
var angle = enemyV.angleTo(playerV);
角度的值总是在-3到3之间,这看起来根本不是直角

我希望有CraftyJS经验的人能在这里帮助我。

angleTo函数返回弧度值,因此运行此函数将给出实际的角度degreex Crafty.math.RadToDegradinValue

要瞄准玩家并使子弹朝那个方向移动,你只需得到两点之间的差值 bullet.x-player.x'bullet.y-player.y'然后应用如下的递增速率

bullet.x_diff = (target.x - bullet.x)*0.02;
bullet.y_diff = (target.y - bullet.y)*0.02;
然后在enterframe循环内:

this.x += this.x_diff;
this.y += this.y_diff;
一旦你有了这个想法,你应该通过除以点之间的距离来标准化你的差异