Переход от ViewController к SKScene

В настоящее время я делаю игру, в которой основная игра - это SKScene, а в меню - UIViewController. У меня есть кнопка, которая при нажатии должна переходить из меню в SKScene. Какой код писать в IBAction?

Я бегу xcode6 beta 5. Если это что-то изменит.


person theCodeKing    schedule 17.08.2014    source источник
comment
какой у тебя код? что вы читали / исследовали на данный момент? что ты пробовал?   -  person Can Poyrazoğlu    schedule 17.08.2014
comment
Я делал большое ранчо ботаников и т. Д.   -  person theCodeKing    schedule 18.08.2014


Ответы (2)


Просто загрузите контроллер представления из раскадровки. А после подарите это.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
MyViewController *lcvc = (MyViewController*)[storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
lcvc.modalPresentationStyle= UIModalPresentationCustom;
[self presentViewController:lcvc animated:YES completion:nil];
person Ramis    schedule 17.08.2014
comment
Я начинаю с фактического контроллера раскадровки / представления, но хочу открыть файл набора спрайтов. Ваш код делает наоборот. Можете ли вы перейти от контроллера представления к набору спрайтов? - person theCodeKing; 18.08.2014

Если у вас есть только один контроллер представления, который содержит кнопку и позже представит SKScene, вы можете реализовать IBAction, подобный следующему:

Цель C

- (IBAction) buttonPressed:(UIButton *)button
{
    // Remove button from the view
    [button removeFromSuperview];
    // Configure the view.
    SKView * skView = (SKView *)self.view;
    skView.showsFPS = YES;
    skView.showsNodeCount = YES;

    // Create and configure the scene.
    SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;

    // Present the scene.
    [skView presentScene:scene];
}

Быстрый

@IBAction func buttonPressed(button:UIButton)
{
    // Remove button from the view
    button.removeFromSuperview()
    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
        // Configure the view.
        let skView = self.view as SKView
        skView.showsFPS = true
        skView.showsNodeCount = true

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = true

        /* Set the scale mode to scale to fit the window */
        scene.scaleMode = .AspectFill

        skView.presentScene(scene)
    }
}

Если у вас есть два контроллера представления, один из которых содержит кнопку, а другой - вашу SKScene, то вам не нужен IBAction. Вы можете просто создать переход от кнопки к контроллеру игрового представления. На раскадровке щелкните кнопку правой кнопкой мыши (или щелкните, удерживая нажатой клавишу «Control»), перетащите действие от инициируемого перехода к контроллеру игрового представления и отпустите кнопку мыши / трекпада.

person Epsilon    schedule 18.08.2014