我在assets文件夹中有两个图像,如下所示:
backgroundImage = @"background.wood";
backgroundImageLight = @"background.wood.lighting";
assets文件夹中的名称与这些字符串相同。当我尝试加载这些图像时,无论backgroundLight总是加载背景图像。我不得不更改assets文件夹中的名称以及" background.wood.lighting"中的字符串。 to" somedifferentstring"为它实际加载正确的图像。这是Xcode的错误吗?为什么它为这些不同的字符串加载相同的图像?是否与初期相似?我尝试手动清空缓存,以确保图像没有预先加载,但也没有帮助。
更新:
显示/加载图像的代码:
SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:backgroundImage];
background.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame));
background.size = self.frame.size;
background.zPosition = background_z_order;
SKSpriteNode *backgroundLight = [SKSpriteNode spriteNodeWithImageNamed:backgroundImageLight];
NSLog(@"%@, %@", backgroundImage, backgroundImageLight);
backgroundLight.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame));
backgroundLight.size = self.frame.size;
backgroundLight.zPosition = background_z_order;
[mainView addChild:background];
[mainView addChild:backgroundLight];
更新2:
所有这些都加载了不同的图像,所以也许它是第二个"。"把它扔掉了idk:
monster.boss.one
monster.fire.redsun
monster.lightning.yellowjaw
monster.normal.greenslither
答案 0 :(得分:1)
最后一次"。"被视为文件扩展名的开头。为了与资产在发明资产目录时从应用程序包移动到资产目录的旧项目兼容,可以说@"myImage.jpg"
是合法的,如果调用图像集,仍然可以在资产目录中找到myImage
。剥离文件扩展名并仍然找到图像集。同样,正在删除带点后缀的.lightning
,并找到生成的background.wood
- 这就是搜索结束。
所以道德是,不要这样做。使用下划线而不是点。