我现在正在使用两个物理体创建踢腿运动;身体和腿。我使用销接头连接两个身体,应用角度限制来限制腿部运动,并施加扭矩脉冲来踢腿。一切正常。
然而,我的角色也有跳跃的能力(只是通过向身体施加向上的冲动),这似乎对我的销关节的极限造成了问题。当角色倒置时,限制开始出现故障,特别是当角色的 zRotation 在 PI 和 -PI 之间移动时,即直接倒置的任一侧。
这看起来很奇怪,因为当以正确的方式站立时,关节限制效果很好。SKPhysicsJointPin
有没有人在使用设置了限制的对象时遇到过类似的问题?
为了完整起见,物理实体是简单bodyWithRectangleOfSize:
的实体,腿节点是实体节点的子节点(因此随之旋转),这就是我设置销关节的方式:
CGPoint topOfLegAnchor = CGPointMake(0.0, [leg size].height / 2.0);
topOfLegAnchor = [[self scene] convertPoint:topOfLegAnchor fromNode:leg];
SKPhysicsJointPin *pinnedJoint = [SKPhysicsJointPin jointWithBodyA:[body physicsBody]
bodyB:[leg physicsBody]
anchor:topOfLegAnchor];
[pinnedJoint setShouldEnableLimits:YES];
[pinnedJoint setLowerAngleLimit:-M_PI_2];
[pinnedJoint setUpperAngleLimit:0.0];