快速计算操纵杆旋转程度

时间:2017-05-18 04:27:14

标签: swift sprite-kit

我正在使用swift开发一个spritekit游戏,我使用this库实现了一个操纵杆。我很难弄清楚如何计算旋转的程度。移动操纵杆时,库会为您提供此信息

joystick.trackingHandler = { jData in
  // something...
  // jData contains angular && velocity (jData.angular, jData.velocity)
}

我不需要旋转玩家,因为游戏是4方向的jrpg风格,所以我只是根据一定程度的触发动作。

是否有人有任何关于将速度恢复到某种程度的有用文章或信息?

我见过有人使用atan2,但似乎只接受Double's,返回的velody是CGPoint类型。

1 个答案:

答案 0 :(得分:2)

angular中的jData值包含以弧度表示的角度。

要进行转换,请将以下代码用于-180和+180之间的值:

let degrees = jData.angular * 360 / (2 * M_PI)

和0到+360之间的值:

var radians = jData.angular
radians = radians > 0 ? radians : (2 * M_PI + radians)
let degrees = radians * 360 / (2 * M_PI)

改编自https://stackoverflow.com/a/1311134/968577