Sprite kit Xcode 6精灵套件-如何实现;initwithsize“;
我是SpriteKit的新手,升级到Xcode 6后遇到了一些问题 最初,当我创建项目时,我将任何方法输入到“initWithSize”中 在Xcode 6中启动项目时,这似乎不再是默认设置,而是替换为: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) 如何继续编写我
-(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]现在,我在回答中提到的方法从你的.sks文件中解构场景,并以此方式创建。再次感谢你,我注意到了。它似乎正在从sks文件中取消归档。每当我尝试添加cgsize方法时,它都无法识别“size”。我该怎么做?其次,对于我为新场景创建的每个新类,我是否需要一个关联的.sks文件?再次感谢,非常感谢您的支持time@MegaTron您应该只在使用该初始值设定项创建的场景中重写和实现initWithSize:方法。在未归档的场景中,需要使用initWithCoder:。不,您不必为每个场景创建.sks,也不必为任何场景创建.sks。它们只是为了方便而已。如果您不喜欢使用它们,您甚至可以删除模板中的默认模板,并以编程方式重建场景(如旧模板中所示)。谢谢,伙计,我来试一试。感谢你花时间来做这件事。
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// stuff
}
return self;
}