我想更新精灵的 P2 体力,使其在给定方向上等于一个常数值。使用极坐标,这很容易:我只需将大小和方向设置为我想要的。但是,对于移相器点,直接设置点坐标的唯一功能(Phaser.Point#set)似乎只支持笛卡尔坐标。
有没有一种简单的方法可以将 Phaser 点设置为一组极坐标,而无需自己将极坐标转换为笛卡尔坐标?
我想更新精灵的 P2 体力,使其在给定方向上等于一个常数值。使用极坐标,这很容易:我只需将大小和方向设置为我想要的。但是,对于移相器点,直接设置点坐标的唯一功能(Phaser.Point#set)似乎只支持笛卡尔坐标。
有没有一种简单的方法可以将 Phaser 点设置为一组极坐标,而无需自己将极坐标转换为笛卡尔坐标?
鉴于此任务不幸缺少构造函数,请结合使用setMagnitude()和rotate()。作为一个方面,我建议编写一个实用方法来为您执行此操作,这样每次您想用极坐标实例化一个点时,您只需要一个(单个)简单调用。
function pointFromPolar(r, t, degrees) {
return new Phaser.Point(1,0).setMagnitude(r).rotate(0,0,t,degrees);
}
r
是幅度,t
是以弧度为单位的角度。如果degrees
为真,t
则实际上是度数。