使用 spritekit 物理关节如何让一个物体以固定距离围绕另一个物体运行?
对象-A,不应移动对象-B,当对对象-A 施加力时,应围绕对象-A
为了实现这一点,我尝试在两个物理体之间附加一个 SKPhysicsJointLimit 限制,然后对 Object-B 施加一个力。我认为导致的行为很奇怪,但可能不是……结果是对象-B 抖动但永远持续下去,似乎不受对象-A 的限制,对象-A 根本没有移动.
使用 spritekit 物理关节如何让一个物体以固定距离围绕另一个物体运行?
对象-A,不应移动对象-B,当对对象-A 施加力时,应围绕对象-A
为了实现这一点,我尝试在两个物理体之间附加一个 SKPhysicsJointLimit 限制,然后对 Object-B 施加一个力。我认为导致的行为很奇怪,但可能不是……结果是对象-B 抖动但永远持续下去,似乎不受对象-A 的限制,对象-A 根本没有移动.
如果你看这个问题,你会发现它与你所问的相反。
SKSpriteNode * ObjectA = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size: CGSizeMake(5,5)];
ObjectA.position = CGPointMake(size.width/2,size.height/2);
ObjectA.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:ObjectA.size];
ObjectA.physicsBody.affectedByGravity = NO;
ObjectA.physicsBody.dynamic = NO;
SKSpriteNode * ObjectB = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size: CGSizeMake(5,5)];
ObjectB.position = CGPointMake(size.width/2,size.height/4);
ObjectB.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:ObjectB.size];
ObjectB.physicsBody.affectedByGravity = YES;
ObjectB.physicsBody.dynamic = YES;
SKPhysicsJointPin *centerPin = [SKPhysicsJointPin jointWithBodyA: ObjectA.physicsBody bodyB: ObjectB.physicsBody anchor: ObjectA.position];
[self addChild: ObjectA];
[self addChild: ObjectB];
[self.scene.physicsWorld addJoint:centerPin];
这篇文章对设置大小有很大帮助。
希望这可以帮助。