添加子项以清空SpriteNode

时间:2015-01-14 22:53:23

标签: objective-c macos sprite-kit

我创建了一个简单的项目,其中有一个名为 GameScene.sks 的文件。这包含一个名为object1的空节点。在另一个名为 Scene2.sks 的文件中,我有一个精灵节点。如何将此节点添加到GameScene.sks中的空节点?我已经关注了WWDC的Session 608视频,但屏幕上没有显示任何内容。这只是一个"测试"因为我希望能够通过这种方法将一个.sks中的许多孩子添加到一个空节点,类似于Apple在WWDC Session 604中用他们的图腾示例所展示的内容。我一定会遗漏一些东西。这是我的代码:

GameScene.m

#import "GameScene.h"
#import "AppDelegate.h"

@implementation GameScene

-(void)didMoveToView:(SKView *)view {
    SKNode *object1 = [self childNodeWithName:@"object1"];
    for (SKNode *child in [GameScene unarchiveFromFile:@"Scene2"].children) {
        [object1 addChild: [child copy]];
    }
}

-(void)update:(CFTimeInterval)currentTime {
    /* Called before each frame is rendered */
}

@end

GameScene.sks

GameScene.sks

Scene2.sks

Scene2.sks

注意:修改了AppDelegate.h文件,以便可以在GameScene.m中使用unarchiveFromFile。这是代码:

AppDelegate.h

#import <Cocoa/Cocoa.h>
#import <SpriteKit/SpriteKit.h>

@interface SKScene (Unarchive)

+ (instancetype)unarchiveFromFile:(NSString *)file;

@end

@interface AppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet SKView *skView;

@end

0 个答案:

没有答案