Ios “暂停”按钮在更改时添加新节点
我已经在我的精灵套件游戏中实现了暂停和播放按钮。问题在于每次按下按钮时似乎都会添加一个新节点。这将是相当无效的。我想要的是替换现有的。我怎样才能做到这一点Ios “暂停”按钮在更改时添加新节点,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我已经在我的精灵套件游戏中实现了暂停和播放按钮。问题在于每次按下按钮时似乎都会添加一个新节点。这将是相当无效的。我想要的是替换现有的。我怎样才能做到这一点 -(void)didMoveToView:(SKView *)view { pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; [pauseButton setImage:[UIImage imageNamed:@"pause"]
-(void)didMoveToView:(SKView *)view
{
pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
[pauseButton setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(pausedMenu:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pauseButton];
}
-(void)pausedMenu:(SKView *)view
{
menuBackground = [SKSpriteNode spriteNodeWithColor:[SKColor colorWithWhite:0.0 alpha:0.2] size:CGSizeMake(self.frame.size.width*2, self.frame.size.height*2)];
[self addChild:menuBackground];
[pauseButton setImage:[UIImage imageNamed:@"start"] forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(startMenu:) forControlEvents:UIControlEventTouchUpInside];
self.scene.paused = YES;
}
-(void)startMenu:(SKView *)view
{
[menuBackground removeAllChildren];
[pauseButton setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(pausedMenu:) forControlEvents:UIControlEventTouchUpInside];
self.scene.paused = NO;
}
你是说
[menuBackground removeFromParent];//add this
menuBackground = [SKSpriteNode spriteNodeWithColor:[SKColor colorWithWhite:0.0 alpha:0.2] size:CGSizeMake(self.frame.size.width*2, self.frame.size.height*2)];
[self addChild:menuBackground];
及
[pauseButton removeFromParent];//add this
pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
[pauseButton setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(pausedMenu:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pauseButton];