我不确定是否我做错了这个或者有什么东西被“atlasWithDictionary”方法破坏。SpriteKit SKTextureAtlas atlasWithDictionary方法
这是我如何使用它:
NSArray* imageNames = @[ @"image1", @"image2", @"image3", @"image4"];
NSMutableDictionary* tempDict = [NSMutableDictionary dictionary];
for (int i = 0; i < imageNames.count; i++) {
UIImage* texture = [UIImage imageNamed:imageNames[i]];
[tempDict setObject:texture forKey:imageNames[i]];
}
SKTextureAtlas* atlasFullOfTextures = [SKTextureAtlas atlasWithDictionary:tempDict];
,再后来在我的代码,每当我会做
SKTexture* tex = [atlasFullOfTextures textureNamed:@"image1"];
我只是得到一个零对象。我做了一些故障排除,发现
NSArray* arrayOfNames = [atlasFullOfTextures textureNames];
返回一个空数组。
此外,我知道图像加载正常,因为我暂时将字典公开并成功地从UIImage对象中制作SKTextures。
有没有人有任何想法发生了什么?
我实现了你的代码,它按预期工作。你把图像文件添加到你的项目了吗?你为什么使用atlasWithDictionary而不是创建一个atlas文件夹? – 0x141E 2014-09-25 06:01:40
是的,我添加了文件。我甚至通过单独制作纹理进行测试。我这样做的原因是我试图引入一些矢量艺术来减少文件大小,但是如果没有纹理图集,绘制调用可能会很容易上涨。所以我必须将该矢量渲染成内存中的位图,然后在运行时形成一个图集。 – mredig 2014-09-25 07:05:21
好了,我......我只是通过简单地取消注释代码,然后尝试早些时候编写的代码,然后再次尝试。我真的希望这是我犯了一个错误,而不是它不一致。 – mredig 2014-09-25 07:42:49