Xcode 6 Sprite kit - 如何实现“initwithsize”

时间:2014-11-13 22:35:13

标签: sprite-kit

我对SpriteKit比较陌生,自升级到Xcode 6以来遇到了一些问题。

最初,当我创建项目时,我在“initWithSize”中输入了任何方法。

-(id)initWithSize:(CGSize)size {    
if (self = [super initWithSize:size]) {  


}
return self;
}

在Xcode 6中启动项目时,它似乎不再是默认项目,而是替换为:

-(void)didMoveToView:(SKView *)view {}

当尝试应用initwithsize时,它只是不起作用,或者不加载我放在其中的精灵节点。即使在尝试创建新文件时,我也不再使用.m和.h文件。我有其他选择,其中没有一个是.h / .m。

所以 1)如何继续编写之前使用initwithsize的方式? 2)创建新文件有什么用处,我不能再创建.m / .h类了吗?

有关这些的任何信息将受到广泛赞赏。

1 个答案:

答案 0 :(得分:3)

这是因为场景的创建方式与以前的Xcode版本不同。现在,使用initWithSize:而不是使用initWithSize:在视图控制器中手动创建场景,而是使用unarchiveFromFile:方法解压缩场景,该方法来自模板(可能是GameViewController.m)。因此,initWithSize:不会被调用。你需要使用initWithCoder:而不是。

- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];

    if (self) {
        // stuff
    }

    return self;
}

就问题的第二部分而言,这就是它在Xcode 6中的表现。您仍然可以创建新文件,对于像类别/类似的东西,模板没有选项等等。