[Ios] SpriteKit에서 전환이 작동하지 않습니다.


Answers

나는 하나의 사소한 차이로 장면 위에 게임을 보여주기 위해 내 앱에 똑같은 코드를 썼다. 내 코드는 다음과 같습니다.

- (void)showGameOverScene
{
    SKTransition* reveal = [SKTransition doorsCloseVerticalWithDuration:0.5];

    SKScene* gameOverScene = [[RSGameOverScene alloc] initWithSize:self.size];

    [self.view presentScene:gameOverScene transition: reveal];
}

그리고 그것은 매력처럼 일하고 있습니다. 유일한 차이점은 내가 부르지 않는다는 것입니다.

scene.scaleMode = SKSceneScaleModeAspectFill;

RSGameOverScene 에서 노드를 -(id)initWithSize:(CGSize)size 로 설정하고 다시 문제가 없습니다. 모든 것이 효과가 있습니다.

이 라인이 문제의 원인이 될 수있는 이유는 알 수 없지만 도움이되는지 알아보기 위해 주석을 달아 볼 수는 있습니다. 그러나 코드는 괜찮아 보이므로 문제의 원인은 다른 곳에서 발생할 수 있습니다.

Question

이 장면 전환을 사용하여 다음 장면을 호출하는 장면이 있습니다.

  SKTransition *transition = [SKTransition revealWithDirection:SKTransitionDirectionDown duration:0.5];

  SKView *skView = (SKView *)self.view;

  SKScene * scene = [[GameOverScene alloc] initWithSize:self.size];
  scene.scaleMode = SKSceneScaleModeAspectFill;
  [skView presentScene:scene transition:transition];

GameOverScene (버튼, 이미지 등)을 구성하는 요소는 init 메서드에 추가됩니다.

문제는 전환이 보이지 않는다는 것입니다. 한 장면은 다른 장면으로 즉시 자릅니다.

다음 장면이 요소를 만들 기회가 오기 전에 전환이 일어난 것 같습니다. 나는 성공없이 didMoveToView 다음 장면의 생성을 이동 시키려고 노력했다.

테스트 목적으로 2 초보다 큰 경우 presentScene 라인을 지연 시키려고했습니다. 내가 그렇게 할 때 전이의 마지막 프레임을 거의 볼 수 없습니다.

어떻게해야합니까? 다음 장면을 만들고 전환 효과를내는 올바른 방법은 무엇입니까?




Links