Sprite kit Xcode 6精灵套件-如何实现;initwithsize“;

Sprite kit Xcode 6精灵套件-如何实现;initwithsize“;,sprite-kit,Sprite Kit,我是SpriteKit的新手,升级到Xcode 6后遇到了一些问题 最初,当我创建项目时,我将任何方法输入到“initWithSize”中 在Xcode 6中启动项目时,这似乎不再是默认设置,而是替换为: -(void)didMoveToView:(SKView *)view {} 当尝试应用initwithsize时,它无法工作,或者无法加载我放入其中的sprite节点。即使在尝试创建新文件时,我也不再看到.m和.h文件。我可以选择其他选项,但没有一个是.h/.m 所以 1) 如何继续编写我

我是SpriteKit的新手,升级到Xcode 6后遇到了一些问题

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

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

-(void)didMoveToView:(SKView *)view {}
当尝试应用initwithsize时,它无法工作,或者无法加载我放入其中的sprite节点。即使在尝试创建新文件时,我也不再看到.m和.h文件。我可以选择其他选项,但没有一个是.h/.m

所以 1) 如何继续编写我以前使用initwithsize时的代码? 2) 创建新文件是怎么回事,我不能再创建.m/.h类了吗


任何关于这些的信息都将不胜感激。

这是因为场景的创建方式与以前的Xcode版本不同。现在,不再使用initWithSize:在视图控制器中手动创建场景,而是使用模板(可能是GameViewController.m)中的unarchiveFromFile:方法取消对场景的归档。因此,不会调用initWithSize:。您需要使用initWithCoder:来代替

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

    if (self) {
        // stuff
    }

    return self;
}

至于问题的第二部分,这就是Xcode 6中的情况。您仍然可以创建新文件,只是不再有用于类别/等内容的模板选项。

Hi mate,感谢您的快速响应。这让我很反感。我刚开始学习spritekit,开始熟悉一些东西。然后这就发生了。。。因此,initwithsize已被完全抛弃。如果我有一个CGSize方法,该如何调用它?再次非常感谢appreciated@MegaTron它没有被抛弃,它还在那里。在您的情况下,默认情况下不再调用它,因为模板是以不同的方式配置的。如果您在一个新模板中查看视图控制器文件,并在一个旧项目中查看,您将能够看到其中的一些差异。在本例中,重要的一点是,场景过去是这样初始化的
GameSecene*scene=[[GameSecene alloc]initWithSize:skView.bounds.size]- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];

    if (self) {
        // stuff
    }

    return self;
}