停止SKSpriteKit点击冲动

我试图在我的游戏中创build一个暂停button。 在你点击屏幕的时候,它会在移动器spriteNode上施加一个冲动。 问题是,当我点击暂停button时,它仍然应用冲动。 我怎样才能创build一个暂停button,而不创build冲动也。

我试着改变if语句,如果然后做最后的冲动部分的其他部分,但这不会工作。

touchBegan方法:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInNode:self]; SKNode *node = [self nodeAtPoint:location]; //if fire button touched, bring the rain if ([node.name isEqualToString:@"repeat"]) { SKTransition *reveal = [SKTransition fadeWithDuration:2.0 ]; MyScene *newScene = [[MyScene alloc] initWithSize: CGSizeMake(self.size.width,self.size.height)]; // Optionally, insert code to configure the new scene. [self.scene.view presentScene: newScene transition: reveal]; } if ([node.name isEqualToString:@"home"]) { SKTransition *reveal = [SKTransition fadeWithDuration:2.0 ]; Menu *newScene = [[Menu alloc] initWithSize: CGSizeMake(self.size.width,self.size.height)]; // Optionally, insert code to configure the new scene. [self.scene.view presentScene: newScene transition: reveal]; } if ([node.name isEqualToString:@"pause"]) { [self pausedMenu]; } if ([node.name isEqualToString:@"start"]) { [self startMenu]; } showpipes = showpipes + 1; if (showpipes == 1) { self.physicsWorld.gravity = CGVectorMake( 0.0, -5.0 ); SKAction* spawn = [SKAction performSelector:@selector(spawnPipes) onTarget:self]; SKAction* delay = [SKAction waitForDuration:2.0]; SKAction* spawnThenDelay = [SKAction sequence:@[spawn, delay]]; SKAction* spawnThenDelayForever = [SKAction repeatActionForever:spawnThenDelay]; [self runAction:spawnThenDelayForever]; } started = 1; if (noImpulse == 1) { if (started == 1) { mover.physicsBody.restitution = 0.0; mover.physicsBody.velocity = CGVectorMake(0, 0); [mover.physicsBody applyImpulse:CGVectorMake(0, 15)]; } } } 

PAUSEDMENU方法:

 -(void)pausedMenu { self.scene.paused = YES; mover.scene.paused = YES; [repeatButton removeFromParent]; [homeButton removeFromParent]; [menuBackground removeFromParent]; menuBackground = [SKSpriteNode spriteNodeWithColor:[SKColor colorWithWhite:0.0 alpha:0.3] size:CGSizeMake(self.frame.size.width*2, self.frame.size.height*2)]; [self addChild:menuBackground]; [pauseButton removeFromParent]; startButton = [SKSpriteNode spriteNodeWithImageNamed:@"staart"]; startButton.name = @"start"; startButton.position = CGPointMake(20, self.size.height-20); startButton.size = CGSizeMake(40, 40); [self addChild:startButton]; repeatButton = [SKSpriteNode spriteNodeWithImageNamed:@"repeat"]; repeatButton.name = @"repeat"; repeatButton.position = CGPointMake(self.size.width/2+30, self.size.height/2); repeatButton.size = CGSizeMake(repeatButton.size.width/2, repeatButton.size.height/2); [self addChild:repeatButton]; homeButton = [SKSpriteNode spriteNodeWithImageNamed:@"home"]; homeButton.name = @"home"; homeButton.position = CGPointMake(self.size.width/2-30, self.size.height/2); homeButton.size = CGSizeMake(homeButton.size.width/2, homeButton.size.height/2); [self addChild:homeButton]; }