如何从UIView转移到iOS中的SKScene

时间:2016-01-20 19:22:14

标签: ios objective-c sprite-kit viewcontroller

我想在Apple iOS平台上使用SpriteKit开发一款游戏。我的游戏有一个设置页面,其中包含标签,按钮,表格视图,...和游戏页面。在我的测试中,第一页是设置和当玩家按“开始”时,游戏将开始。我不知道如何转移到游戏场景,我不知道我的问题在哪里,也许是因为我是SpriteKit的新手。 我的设置页面是故事板中的起始页面,默认情况下它连接到GameViewController,当我按下“开始”按钮时,我在最后一行得到错误,程序将停止。我想在新视图中加载我的游戏场景,但我有问题。 这是我的代码:

-(IBAction)btn_startGame:(id)sender
{
    SKView* skView = (SKView*)self.view;

    SKScene* obj_gameScene = [MyScene sceneWithSize:skView.bounds.size];

    obj_gameScene.scaleMode = SKSceneScaleModeAspectFill;

    SKTransition *transition = [SKTransition flipVerticalWithDuration:0.5];
    [skView presentScene:obj_gameScene];

}

这是错误:

  

2016-01-21 06:06:40.201 test_myGame [605:5321] - [UIView presentScene:]:   无法识别的选择器发送到实例0x7fd809fcf570 2016-01-21   06:06:40.207 test_myGame [605:5321] ***由于未被捕获而终止应用程序   异常'NSInvalidArgumentException',原因:' - [UIView   presentScene:]:无法识别的选择器发送到实例0x7fd809fcf570'

1 个答案:

答案 0 :(得分:3)

您必须确保GameController的视图是SKView而不是UIView。

您可以查看故事板:

选择ViewController的视图(在左侧)并检查类型(在右侧)。

enter image description here

在我的示例中,我创建了一个继承自SKView的自定义类GameMainView。