我正在尝试找出2个向量之间的距离。目前,这是我的代码。
if (((enemyOrigin.X - player.playerOrigin.X) * (enemyOrigin.X - player.playerOrigin.X) + (enemyOrigin.Y - player.playerOrigin.Y) * (enemyOrigin.Y - player.playerOrigin.Y)) < 80 * 80)
isEnemyInRange = true;
我有一个A *路径查找在if语句中正常运行,该语句检查isEnemyInRange是否为false。因此,如果敌人离开80像素,则应该保持静止。
if (!isEnemyInRange)
{
//A*//
}
有了这一切,敌人并没有保持80像素的距离,它只是像其他情况一样,应该找到玩家的位置。
您可以使用默认的Vector2.Distance方法来计算两个向量之间的距离。
Vector2.Distance(enemyOrigin, player.playerOrigin)
假设这两个变量将各自的位置表示为Vector2
假设您有两个向量:'a'和'b'。
这里是获取它们之间距离的公式:
如果您仍然不理解,那么您应该学习数学,这里是参考:http://mathonline.wikidot.com/the-distance-between-two-vectors