- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定我是否做错了,或者“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"];
我刚得到一个 nil 对象。我做了一些故障排除,发现
NSArray* arrayOfNames = [atlasFullOfTextures textureNames];
返回一个空数组。
此外,我知道图像加载正常,因为我暂时公开了字典并成功地从 UIImage 对象制作了 SKTextures。
有谁知道发生了什么事吗?
最佳答案
来自documentation :
The keys in the dictionary represent the names of the individual textures. The associated object for each key can be:
An NSString object that contains a file system path to a file that contains the texture
An NSURL object that contains a file system path to a file that contains the texture
A UIImage object
An NSImage object
您没有提供图像的路径/URL,您只是使用图像名称而无法判断它们可能在哪里。您可能还必须指定文件扩展名,因为 Sprite Kit 可能不会尝试猜测它。如果这些是在运行时获取或创建的纹理,它们将不在包中,因此您还必须指定每个纹理的路径(通常在 appdata 或文档文件夹中)。
如果这些图像在 包中,您可能必须指定包目录。但在这种情况下,没有理由不让 Xcode 在编译时创建图集,然后使用 atlasNamed:
。
关于ios - SpriteKit SKTextureAtlas atlasWithDictionary 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26028495/
我不确定我是否做错了,或者“atlasWithDictionary ”方法是否有问题。 我是这样用的: NSArray* imageNames = @[ @"image1", @"image2", @
我是一名优秀的程序员,十分优秀!