2013-10-25 3 views
0

스프라이트 키트를 사용하여 게임을 만들고 있습니다. 사용자가 버튼을 눌러 다음 장면으로 전환하는 메뉴 화면을 만들었고 버튼을 눌렀을 때 버튼에 애니메이션을 적용하려고합니다.SKAction이 작동하지 않는 것 같습니다.

SKAction을 사용하여이 코드를 작성했지만 단추를 누를 때 애니메이션이 표시되지 않습니다.

(I 문제가 다음 장면으로의 전환이 버튼을 누를 때 버튼의 애니메이션이 재생되지 않습니다 제외하고 예상대로 정확하게 작동하기 때문에이 코드가 실행되지 않는 것이 아니라는 것을 알고)

(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]]]; 


} 
관련 문제