【问题标题】:SpriteKit Fixed JointsSpriteKit 固定关节
【发布时间】:2014-05-30 21:39:48
【问题描述】:

我有一个名为“SpikyRedBall”的 SKSpriteNode,它是一个红球。我想给它添加尖峰,所以我使用了下面的代码。我可以看到附着在球上的 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

【问题讨论】:

    标签: ios sprite-kit


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 但是 Physicsbody 需要一个复杂的形状。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-09
        • 2016-06-15
        • 2019-09-19
        • 1970-01-01
        相关资源
        最近更新 更多