我正在使用swift开发一个spritekit游戏,我使用this库实现了一个操纵杆。我很难弄清楚如何计算旋转的程度。移动操纵杆时,库会为您提供此信息
joystick.trackingHandler = { jData in
// something...
// jData contains angular && velocity (jData.angular, jData.velocity)
}
我不需要旋转玩家,因为游戏是4方向的jrpg风格,所以我只是根据一定程度的触发动作。
是否有人有任何关于将速度恢复到某种程度的有用文章或信息?
我见过有人使用atan2
,但似乎只接受Double's,返回的velody是CGPoint类型。
答案 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)