Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 能否在sks文件中保存节点的位置_Xcode_Sprite Kit_Skscene - Fatal编程技术网

Xcode 能否在sks文件中保存节点的位置

Xcode 能否在sks文件中保存节点的位置,xcode,sprite-kit,skscene,Xcode,Sprite Kit,Skscene,我正在尝试创建一个SKScene文件,在该文件中,我们将在放置玩家和其他对象的位置创建空节点。问题是所有位置都必须在代码中设置。是否可以改为在sks文件中设置位置? 我确实注意到节点检查器中有一个位置标签,但这似乎没有任何效果。使用以下内容写入数据: 使用NSUserDefault读取数据: NSDictionary * nodeDict = [[NSUserDefaults standardUserDefaults] objectForKey:@"nodeDict"]; float posX

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

使用以下内容写入数据:

使用NSUserDefault读取数据:

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];