Вы изначально загружены сцены из .sks файл и, как вы сказали, что есть некоторые анимации там. Позже (внутри touchesBegan
) вы создаете сцену, предоставляя размер (используя статический метод sceneWithSize
). Таким образом, сцена не загружается из архива.
Чтобы устранить проблему, загрузите свою сцену так, как вы это делали, в GameViewController
.
EDIT:
Для перехода между двумя сценами вы должны создать два .sks
файлы. Вы можете назвать их следующим образом: MenuScene и GameScene (у вас уже есть этот по умолчанию). Обратите внимание: при создании этих файлов вам не нужно писать расширение (.sks
), а просто имя файла. Затем вы должны создать соответствующие файлы .m
и .h
. Поэтому создайте MenuScene.m
и MenuScene.h
. GameScene
.m
и .h
файлы есть по умолчанию.
MenuScene
должен быть подклассом (необязательно прямым подклассом) SKScene
.
Затем внутри контроллера вид:
- (void)viewDidLoad
{
[super viewDidLoad];
SKView * skView = (SKView *)self.view;
GameScene *scene = [GameScene nodeWithFileNamed:@"GameScene"];
scene.scaleMode = SKSceneScaleModeAspectFill;
scene.size = skView.bounds.size;
[skView presentScene:scene];
}
позже в вашей GameScene-х touchesBegan
метод, если вы хотите, чтобы перейти к MenuScene
, вы должны сделать что-то вроде этого:
MenuScene *nextScene = [MenuScene nodeWithFileNamed:@"MenuScene"];
SKTransition *transition = [SKTransition fadeWithDuration:3];
[self.view presentScene:nextScene transition:transition];
Точно так же, для перехода к GameScene
в вашем меню в MenuScene выполните следующие действия:
GameScene *nextScene = [GameScene nodeWithFileNamed:@"GameScene"];
SKTransition *transition = [SKTransition fadeWithDuration:3];
[self.view presentScene:nextScene transition:transition];
Конечно, перед каждым переходом вы можете установить режим масштаба сцены в соответствии с режимом масштабирования старой сцены.
От вашего кода, похоже, что вы пытаетесь перейти на одну и ту же сцену: GameScene
->GameScene
. Это, конечно, возможно, но вы уверены, что хотите этого?
Если это так, просто используйте код, который я предоставил для метода MenuScene touchesBegan
.
Вы уверены, что хотите осуществить переход к той же сцене? Вы переходите от 'GameScene' ->' GameScene' в настоящее время. – Whirlwind
Нет, это было просто для тестирования, как бы вы это сделали для другой сцены :)? Я пробовал это до –
Оформить заказ на мой ответ (я сделал редактирование) ... – Whirlwind