我有一个名为&#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
答案 0 :(得分:3)
听起来你没有为尖峰本身设置碰撞或接触类别设置。我会尝试将尖峰上的所有physicsBody属性设置为与球的属性相同,但显然确保它们没有碰撞或接触类别设置,以便它们会与自己的父球碰撞。
答案 1 :(得分:2)
如果您需要iOS 7.1,则可以使用+bodyWithBodies:
而不是附加任何关节。
答案 2 :(得分:1)
为什么不将尖峰添加到精灵图像?如果它们需要消失或脱落,您可以创建多个版本的图像而不会出现尖峰。