现在我正在开发SKScene。我有两个ViewController文件,我创建了两个场景文件,它们是SKScene的子视图。我知道我可以在场景文件中执行许多SKActions。但我想在appEntersBackground方法中执行一些SKAction:在ViewController.m文件中。但似乎这种方法中的SKActions不起作用,我不知道为什么。
在ViewController.m文件中:
-(void)appEntersBackground {
SKAction *action = [SKAction customActionWithDuration:0.1 actionBlock:^(SKNode *node, CGFloat elapsedTime) {
//perform some actions
}
[myNode runAction: action];
}
答案 0 :(得分:0)
您无法从viewController执行SKAction。但是,当应用程序进入后台并在那里执行必要的操作时,您可能会在场景中触发一个方法。
将appEntersBackground方法粘贴到SKScene本身。然后在didMoveToView方法中调用以下通知。
-(void)didMoveToView:(SKView *)view {
/* Setup your scene here */
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appEntersBackground) name:UIApplicationDidEnterBackgroundNotification object:nil];
//The rest of your setup goes here
}
-(void)appEntersBackground {
SKAction *action = [SKAction customActionWithDuration:0.1 actionBlock:^(SKNode *node, CGFloat elapsedTime) {
//perform some actions
}
[myNode runAction: action];
}
当应用程序进入后台时,应该调用该方法。