如何计算2精灵之间的矢量

CraftyJS how to calculate vector between 2 sprites?

本文关键字:之间 精灵 何计算 计算      更新时间:2023-09-26

我是一个游戏编程新手,数学不太好,我正试图编写一款1945年风格的射击游戏,到目前为止一切都很好,但我遇到了瓶颈,我不知道如何让敌人瞄准玩家。

假设我有敌人精灵和玩家精灵,我该如何找到角度和路径?这听起来像是计算2点之间的矢量,我一直在阅读文档,特别是这个链接http://craftyjs.com/api/Crafty-math-Vector2D.html

我就是不知道怎么做,我试过下面的

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函数返回弧度值,因此运行此函数将给出实际的角度Crafty.math.radToDeg(radianValue)

为了瞄准玩家并让子弹朝那个方向移动,你只需要获得2点的差值bullet.x - player.x'子弹。Y - player。然后应用如下所示的增量速率(

)
bullet.x_diff = (target.x - bullet.x)*0.02;
bullet.y_diff = (target.y - bullet.y)*0.02;

then inside enterframe loop:

this.x += this.x_diff;
this.y += this.y_diff;

一旦你明白了这个想法,你应该通过除以点之间的距离来标准化你的diff。