У меня есть GamePlayScene, который по окончании удаляет все узлы и отображает счет и возможность перезапуска. У меня также есть кнопка на этой сцене, которая приведет вас к другой сцене, чтобы отображать обновляемые элементы. Я хотел бы создать функцию, которая добавит кнопку «Назад» на сцену «Обновить элементы», которая вернет меня на завершенную сцену GamePlay. Код, который у меня есть сейчас, возвращает меня обратно в сцену GamePlay, но перезапускает игру, а не отображает текст над текстом. Я пробовал искать в Интернете, но я не могу найти хорошее решение. Мой код:Возврат к предыдущей сцене в том же состоянии
GamePlayScene.m
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
...
else if (self.restart) {
[[GameState sharedInstance] saveState];
if ([node.name isEqualToString:@"UpgradesButton"]){
UpgradeShipScene *upgradeScene = [UpgradeShipScene sceneWithSize:(self.frame.size)];
SKTransition *transition = [SKTransition fadeWithDuration:0.5];
[self.view presentScene:upgradeScene transition:transition];
}
...
}
UpgradesScene.m
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];
if ([node.name isEqualToString:@"BackButton"]){
for (SKNode *node in [self children]){
[node removeFromParent];
}
GamePlayScene *scene = [GamePlayScene sceneWithSize:self.view.bounds.size];
SKTransition *transition = [SKTransition fadeWithDuration:0.5];
[self.view presentScene:scene transition:transition];
}
}
Есть ли проблема не использовать 'SKScene' и использовать' SKNode' как «фальшивую сцену»? Затем вы можете нажать кнопку «Назад», и это будет удалено из родителя (это будет игра поверх сцены). – aramusss
Хмм, я не думал об этом, но похоже, что это легко устранит мою проблему. Спасибо за идею! – Exprosul
Отлично! Пожалуйста, примите ответ, который я разместил, если это было вашим решением;) – aramusss