Xcode 能否在sks文件中保存节点的位置
我正在尝试创建一个SKScene文件,在该文件中,我们将在放置玩家和其他对象的位置创建空节点。问题是所有位置都必须在代码中设置。是否可以改为在sks文件中设置位置? 我确实注意到节点检查器中有一个位置标签,但这似乎没有任何效果。使用以下内容写入数据: 使用NSUserDefault读取数据:Xcode 能否在sks文件中保存节点的位置,xcode,sprite-kit,skscene,Xcode,Sprite Kit,Skscene,我正在尝试创建一个SKScene文件,在该文件中,我们将在放置玩家和其他对象的位置创建空节点。问题是所有位置都必须在代码中设置。是否可以改为在sks文件中设置位置? 我确实注意到节点检查器中有一个位置标签,但这似乎没有任何效果。使用以下内容写入数据: 使用NSUserDefault读取数据: NSDictionary * nodeDict = [[NSUserDefaults standardUserDefaults] objectForKey:@"nodeDict"]; float posX
NSDictionary * nodeDict = [[NSUserDefaults standardUserDefaults] objectForKey:@"nodeDict"];
float posX = [[nodeDict objectForKey:@"posX"] floatValue];
float posY = [[nodeDict objectForKey:@"posY"] floatValue];
显然,您可以编写比上述示例多得多的数据。如果有多个节点,请为每个节点创建一个字典,并将它们全部存储在一个数组中。将数组写入NSUserDefaults
请记住,您只能在字典中存储对象,而不能存储int、float等原语。。。这就是为什么您必须将它们转换为NSNumber。您使用的是哪个版本的XCode?我使用的是XCode 6 Beta 6为什么不使用NSUserDefaults?@sangony我使用的是SpriteKit,而不是普通的界面生成器。其次,它没有集成在场景编辑器中,所以我必须手动编辑。你可以在SpriteKit中轻松使用NSUserDefaults,编码只需要几行。好的,但我也可以使用plist,这会更容易,因为它有一个编辑器。@blackwolf123333-这是个人喜好的问题,什么对你的任务更有效。
NSDictionary * nodeDict = [[NSUserDefaults standardUserDefaults] objectForKey:@"nodeDict"];
float posX = [[nodeDict objectForKey:@"posX"] floatValue];
float posY = [[nodeDict objectForKey:@"posY"] floatValue];