SKPhysicsJoint允许绕固定点运行

时间:2014-02-11 10:00:30

标签: sprite-kit skphysicsbody

使用spritekit物理关节怎么能让一个物体在固定距离处进行另一个物体轨道运行?

对象-A,不应该移动 当施加力时,物体B应该围绕物体A运行

为了达到这个目的,我尝试在两个物理实体之间附加一个SKPhysicsJointLimit限制,然后对Object-B施加一个力。我认为结果是奇怪的行为,但它可能不是......结果是什么结果是对象-B抖动但永远关闭并且似乎没有受到对象-A的限制,而对象-A根本没有移动。

1 个答案:

答案 0 :(得分:0)

如果你看一下这个question,你会发现它与你所要求的相反。

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];

This文章对设置大小有很大帮助。

希望这有帮助。