2013-10-25 92 views
0

我正在使用精灵套件进行游戏。我创建了一个菜单屏幕,用户按下按钮可转换到下一个场景,并且我想在按下按钮时为其设置动画效果。SKAction似乎没有工作

我想使用SKAction来做到这一点,我写了这段代码,但当我按下按钮时没有动画发生。

(我知道,这个问题是不是这个代码是没有运行,因为到下一个场景的转换工作完全当按下按钮如预期,除了按钮动画不能播放)

(void)runMenuTransition 
{ 
//Animation for the button, the problem is that this doesn't seem to work 

SKAction *buttonAnimation = [SKAction fadeAlphaBy:0.5 duration:0.2]; 
[self.playGameButton runAction: buttonAnimation]; 

sleep(1); 

//Transition to the next scene (this part seems to work fine) 

SKTransition *reveal = [SKTransition fadeWithDuration:0.75]; 
EclipseSecondMenuScene *newScene = [[EclipseSecondMenuScene alloc]initWithSize:self.size]; 
[self.scene.view presentScene:newScene transition:reveal]; 
} 

如果有帮助,playGameButton是一个SKSpriteNode,它是一个.png图像。

我目前在模拟器上运行这个。

任何建议的帮助,非常感谢。我非常肯定这对于有经验的人来说是相当明显的事情。

谢谢。

+0

您是否找到了答案?我有同样的问题。 – zeeple

回答

2

我不是100%肯定在这个,而不是调用sleep()我认为你应该只是做一系列事件。

(void)runMenuTransition 
{ 
//Animation for the button, the problem is that this doesn't seem to work 

SKAction *buttonAnimation = [SKAction fadeAlphaBy:0.5 duration:0.2]; 
SKAction *wait = [SKAction waitForDuration:1]; 
SKAction *transition = [SKAction runBlock:^{ 
    //Transition to the next scene 

    SKTransition *reveal = [SKTransition fadeWithDuration:0.75]; 
    EclipseSecondMenuScene *newScene = [[EclipseSecondMenuScene alloc]initWithSize:self.size]; 
    [self.scene.view presentScene:newScene transition:reveal]; 
}]; 
[self.playGameButton runAction: [SKAction sequence:@[buttonAnimation,wait,transition]]]; 


}