我正在尝试创建一个SKScene文件,我们在播放器和其他对象的位置创建空节点。问题是所有位置都必须在代码中设置。是否可以在sks文件中设置位置? 我注意到节点检查器中有一个位置标签,但似乎没有任何效果。
答案 0 :(得分:0)
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。