我有一个SKView运行游戏,并希望在关卡完成(或失败)时覆盖较小的SKView。当用户选择一个动作(重启,下一个等等)时,我需要关闭这个SKView([self removeFromView]
并在游戏SKView中触发一个合适的方法。这甚至可能吗?
答案 0 :(得分:1)
是的,为“levelCompleted”场景创建一个委托协议:
@protocol YOURlevelCompletedSceneDelegate <NSObject>
- (void)touchesBeganOnScene:(YOURlevelCompletedScene *)scene;
@end
显然给levelCompletedScene一个委托:
@property (nonatomic, weak) NSObject <YOURlevelCompletedSceneDelegate> *delegate;
让你的gameScene遵守协议:
@interface YOURGameScene () <YOURlevelCompletedSceneDelegate>
每当你设置它时,将它设为levelCompletedScene的委托:
levelCompletedScene.delegate = self;
然后在gameScene的某处实现委托方法并做任何你想做的事情:
- (void)touchesBeganOnScene:(YOURlevelCompletedScene *)scene{
// enjoy!
}
答案 1 :(得分:1)
虽然@ nickfalk的答案是合适的,但您也可以考虑使用NSNotification
。您的父viewController将成为侦听器,只需发布适用的通知即可触发该方法。