我在平台游戏中有一辆车我正在努力,我希望能够允许旋转,这样它就可以卷起山丘等。我想限制我的车辆在负向和正向上旋转30度。
问题是当我启用了旋转并且悬崖或直线下降时,我的车从侧面翻转并落在其头上。我一直在寻找一种方法,将zRotation限制在每个方向的设定度数。
我尝试使用本教程中的IK约束部分:{更新函数中的https://www.raywenderlich.com/129895/sprite-kit-inverse-kinematics-swift-2,但它没有任何效果。
然后我发现了这个:https://developer.apple.com/documentation/spritekit/skconstraint/1519706-zrotation#declarations
这似乎正是我所需要的,但我无法弄清楚如何实现它。任何建议将不胜感激!
答案 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]