Я пытаюсь применить импульс к узлу спрайта в SK каждый раз, когда касаюсь, но ничего не происходит. Прикосновение регистрируется, но нет импульса.Импульс не применяется в комплекте Sprite
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
SKSpriteNode *torso = [SKSpriteNode spriteNodeWithColor:[SKColor blueColor] size:CGSizeMake(40, 60)];
torso.position = CGPointMake (250,250);
torso.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(40, 60)];
torso.physicsBody.dynamic = YES;
[self addChild: torso];
SKSpriteNode *arm = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(15, 50)];
arm.position = CGPointMake (235,235);
arm.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(40, 60)];
arm.physicsBody.dynamic = YES;
[self addChild: arm];
SKPhysicsJointPin *leftArm = [SKPhysicsJointPin jointWithBodyA:torso.physicsBody bodyB:arm.physicsBody anchor:torso.position];
[self.physicsWorld addJoint:leftArm];
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[_torso.physicsBody applyImpulse:CGVectorMake(12, 10)];
NSLog(@"touch");
}
Мой спрайт узел имеет другой узел, связанный с ним, но я попробовал импульс на него без дополнительного узла, и он по-прежнему не работает.
Вы создаете новый экземпляр 'торса' в' initWithSize: ', но вы, кажется, никогда не устанавливаете' _torso' ни в чем. –
@MikeS Если бы я не исправил это, как я и думал, исправление имени экземпляра ничего не изменило! – cocoamoco
Что именно вы изменили? –