如何通过zRotation约束阻止我的角色过度旋转?

时间:2017-06-30 19:36:40

标签: ios swift swift3 sprite-kit

我在平台游戏中有一辆车我正在努力,我希望能够允许旋转,这样它就可以卷起山丘等。我想限制我的车辆在负向和正向上旋转30度。

问题是当我启用了旋转并且悬崖或直线下降时,我的车从侧面翻转并落在其头上。我一直在寻找一种方法,将zRotation限制在每个方向的设定度数。

我尝试使用本教程中的IK约束部分:{更新函数中的https://www.raywenderlich.com/129895/sprite-kit-inverse-kinematics-swift-2,但它没有任何效果。

然后我发现了这个:https://developer.apple.com/documentation/spritekit/skconstraint/1519706-zrotation#declarations

这似乎正是我所需要的,但我无法弄清楚如何实现它。任何建议将不胜感激!

1 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

  let thirtyDegrees = CGFloat(0.523599) // Convert degrees to rads.

  let rotationRange = SKRange(lowerLimit: -thirtyDegrees, upperLimit: thirtyDegrees)

  let rotationConstraint = SKConstraint.zRotation(rotationRange)

  let vehicle = SKSpriteNode()

  vehicle.constraints = [rotationConstraint]