从 SKScene 获取命令键

Posted

技术标签:

【中文标题】从 SKScene 获取命令键【英文标题】:Get command key from SKScene 【发布时间】:2019-10-14 12:40:01 【问题描述】:

我想为我的 SpriteKit 游戏支持键盘,但问题是:

我们从 ViewController 获取命令键:

- (NSArray *)keyCommands 
    return @[[UIKeyCommand keyCommandWithInput:@" " modifierFlags:0 action:@selector(fire)]];

但是游戏逻辑都在SKScene中,从ViewController呈现出来……而且还有多个SKScene……场景如何从ViewController获取命令?还是我们需要进行键盘轮询?

【问题讨论】:

当你说多个场景时......我希望你的意思是你有可以随时呈现的不同类,而不是一次显示多个场景 是的,通常一个游戏都有一个场景,每个场景用于标题、游戏玩法、游戏结束等。 好的,那么你想要一个协议,什么时候。我有时间我会写一个答案 【参考方案1】:

您可以通过NSNotification发送消息

SKScene中添加观察者,

[[NSNotificationCenter defaultCenter] addObserver:self
                                      selector:@selector(selectorMethod:)
                                      name: @"NOTIFICATION_NAME"
                                      object:nil];

发布通知表单UIViewController

NSDictionary *userInfo = @ @"Key": @"Value" ;
[[NSNotificationCenter defaultCenter] postNotificationName: @"NOTIFICATION_NAME" object:nil userInfo:userInfo];

【讨论】:

以上是关于从 SKScene 获取命令键的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SKScene 获取和更改我的视图控制器中的变量

如何从 SKScene 内部获得触摸时的像素颜色?

在 SKScene、iOS、Swift 中获取/设置像素颜色

从 SKScene 中删除 iAd

如何从 SKScene 呈现 UIAlertController

从视图控制器设置 SKScene 委托,未找到委托