SpriteKit固定接头

时间:2014-05-30 21:39:49

标签: ios sprite-kit

我有一个名为&#34的SKSpriteNode; SpikyRedBall"这是一个红球。我想为它添加尖峰,所以我使用了以下代码。我可以看到Spike附着在球上,但是当球与另一个球发生碰撞时,它不会考虑固定关节并将它们分开移动。我使用以下实现:

@implementation SpikyRedBall

-(instancetype) init
{
    self = [super init];
    [self attachSpikes];
    return self;
}

    -(void) attachSpikes
    {
        Spike *spike = [[Spike alloc] init];
        spike.position = CGPointMake(0, 0);

        // attach the joint
        SKPhysicsJointFixed *ballAndSpikeJointFixed = [SKPhysicsJointFixed jointWithBodyA:self.physicsBody bodyB:spike.physicsBody anchor:CGPointZero];

        [self.scene.physicsWorld addJoint:ballAndSpikeJointFixed];
        [self addChild:spike];
    }

@end

3 个答案:

答案 0 :(得分:3)

听起来你没有为尖峰本身设置碰撞或接触类别设置。我会尝试将尖峰上的所有physicsBody属性设置为与球的属性相同,但显然确保它们没有碰撞或接触类别设置,以便它们会与自己的父球碰撞。

答案 1 :(得分:2)

如果您需要iOS 7.1,则可以使用+bodyWithBodies:而不是附加任何关节。

答案 2 :(得分:1)

为什么不将尖峰添加到精灵图像?如果它们需要消失或脱落,您可以创建多个版本的图像而不会出现尖峰。