如何在 iOS 中从 UIView 转移到 SKScene
Posted
技术标签:
【中文标题】如何在 iOS 中从 UIView 转移到 SKScene【英文标题】:How transfer from UIView to SKScene in iOS 【发布时间】:2016-01-20 19:22:14 【问题描述】:我想在 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'
【问题讨论】:
可以添加错误信息吗? 这是错误:2016-01-21 06:06:40.201 test_myGame[605:5321] -[UIView presentScene:]: unrecognized selector sent to instance 0x7fd809fcf570 2016-01-21 06:06 :40.207 test_myGame[605:5321] *** 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'-[UIView presentScene:]: unrecognized selector sent to instance 0x7fd809fcf570' 【参考方案1】:您必须确保 GameController 的视图是 SKView 而不是 UIView。
您可以查看情节提要:
选择 ViewController 的 View(左侧)并检查类型(右侧)。
在我的示例中,我创建了一个继承自 SKView 的自定义类 GameMainView。
【讨论】:
谢谢斯特凡,就是这样!以上是关于如何在 iOS 中从 UIView 转移到 SKScene的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 segue 从 UIView 导航到 UIView 控制器?
如何在自定义 UIView 中从 ViewController 传递数据