当我存档SKLabelNodes和SKShapeNodes(我没有尝试过SKSpriteNotes)没问题,但是当我从存档中提取精灵时,我得到SKTexture:加载图像资源时出错:&#34; Missing Resource.png&#34;。< / p>
以下是一些演示此问题的示例代码:
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
SKLabelNode *const myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
myLabel.text = @"Hello, World!";
myLabel.fontSize = 30;
myLabel.position = CGPointMake(CGRectGetMidX(self.frame),
CGRectGetMidY(self.frame));
// Archive
NSFileManager *const fm = [NSFileManager defaultManager];
NSURL *const dir = [fm URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0];
NSURL *const archive = [dir URLByAppendingPathComponent:@"example"];
[NSKeyedArchiver archiveRootObject:myLabel toFile:archive.path];
// Unarchive
SKLabelNode *const arLabel = [NSKeyedUnarchiver unarchiveObjectWithFile:archive.path];
myLabel.position = CGPointMake(CGRectGetMidX(self.frame) + 30,
CGRectGetMidY(self.frame) + 30);
[self addChild:myLabel];
[self addChild:arLabel];
}
return self;
}
知道我做错了吗?
答案 0 :(得分:2)
此代码适用于我。两个标签都显示出来,没有&#34;缺少资源&#34;图标。
我把它放在SKScene的init中,如上所述,并在用户按下按钮时运行它。在iPhone Retina Simulator上测试,包括普通和64位以及iOS 7.0和7.1以及带iOS 7.1的iPod Touch 5G。
我建议将此代码放在新创建的Sprite Kit项目中,以验证它是否也适合您。如果是,问题必须与您的项目有关。如果它甚至在新项目中仍然无法工作,那么...我不知道。如果您没有使用Xcode 5.1,也许您可能想要更新Xcode。