可以在sks文件中保存节点的位置吗?

时间:2014-08-21 10:27:22

标签: xcode sprite-kit skscene

我正在尝试创建一个SKScene文件,我们在播放器和其他对象的位置创建空节点。问题是所有位置都必须在代码中设置。是否可以在sks文件中设置位置? 我注意到节点检查器中有一个位置标签,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:0)

使用NSUserDefaults

写入数据
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSDictionary *nodeDict = [[NSDictionary alloc] initWithObjectsAndKeys:
                          [NSNumber numberWithFloat:myNode.position.x], @"posX",
                          [NSNumber numberWithFloat:myNode.position.y], @"posY",
                          nil];

[defaults setObject: nodeDict forKey:@"nodeDict"];

[defaults synchronize];

使用NSUserDefaults读取数据:

NSDictionary * nodeDict = [[NSUserDefaults standardUserDefaults] objectForKey:@"nodeDict"];

float posX = [[nodeDict objectForKey:@"posX"] floatValue];
float posY = [[nodeDict objectForKey:@"posY"] floatValue];

显然,您可以编写比上面示例更多的数据。如果您有多个节点,请为每个节点创建一个字典,并将它们全部存储在一个数组中。将数组写入NSUserDefaults。

请记住,您只能将对象存储在字典中,而不能存储像int,float等原语...这就是为什么必须将它们转换为NSNumber。