Ios 雪碧套件:带SKPhysicsJointLimit的绳索在过度用力下断裂?

Ios 雪碧套件:带SKPhysicsJointLimit的绳索在过度用力下断裂?,ios,objective-c,sprite-kit,skphysicsbody,Ios,Objective C,Sprite Kit,Skphysicsbody,下面的代码非常有效。它创建了一条由方形链环组成的悬挂绳索,然后对底部链环施加一个力使其摆动。创建SKScene时,它在SKScene对象中执行 但是,如果将最后一行上的力从2000更改为4000,物理会发生混乱,链接有时会断开。有时链接似乎在振动,或者它们完全屈服于重力,好像没有连接。此外,如果有其他物理实体,它们将不再与haywire链接碰撞,即使它们在应用力之前碰撞过 虽然4000似乎太多了,但我遇到过这样的问题:对较轻的物体施加的力要小得多,或者对绳索施加的力要小得多,链环之间的间隙要小得

下面的代码非常有效。它创建了一条由方形链环组成的悬挂绳索,然后对底部链环施加一个力使其摆动。创建SKScene时,它在SKScene对象中执行

但是,如果将最后一行上的力从2000更改为4000,物理会发生混乱,链接有时会断开。有时链接似乎在振动,或者它们完全屈服于重力,好像没有连接。此外,如果有其他物理实体,它们将不再与haywire链接碰撞,即使它们在应用力之前碰撞过

虽然4000似乎太多了,但我遇到过这样的问题:对较轻的物体施加的力要小得多,或者对绳索施加的力要小得多,链环之间的间隙要小得多

我做错什么了吗?Sprite工具包中是否有bug或其他解释?我在网上找不到任何答案

无论力是在场景创建过程中应用还是延迟到以后应用,都没有关系

self.scaleMode = SKSceneScaleModeAspectFit;
self.anchorPoint = CGPointMake(0.5, 0.5);

CGFloat length = 20;
CGFloat gapMult = 1.8;
int numBoxes = 10;

SKSpriteNode *prevBox = nil;
for (int i = 0; i < numBoxes; i++) {
    SKSpriteNode *box = [SKSpriteNode spriteNodeWithColor:[UIColor yellowColor] size:CGSizeMake(length, length)];
    box.position = CGPointMake(0, -i * length * gapMult);
    [self addChild:box];

    box.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(length, length)];
    if (i == 0) {
        box.physicsBody.dynamic = NO;
    } else {
        CGPoint pt1 = CGPointMake(0, prevBox.position.y - length / 2);
        CGPoint pt2 = CGPointMake(0, box.position.y + length / 2);

        SKPhysicsJointLimit *joint = [SKPhysicsJointLimit jointWithBodyA:prevBox.physicsBody bodyB:box.physicsBody anchorA:pt1 anchorB:pt2];
        [self.physicsWorld addJoint:joint];
    }

    prevBox = box;
}

[prevBox.physicsBody applyForce:CGVectorMake(2000, 0)];
self.scaleMode=SKSceneScaleModeAspectFit;
self.anchorPoint=CGPointMake(0.5,0.5);
CGFloat长度=20;
CGFloat gapMult=1.8;
int numBoxes=10;
SKSpriteNode*prevBox=nil;
for(int i=0;i