gpt4 book ai didi

ios - SpriteKit SKTextureAtlas atlasWithDictionary 方法

转载 作者:行者123 更新时间:2023-11-29 02:38:50 25 4
gpt4 key购买 nike

我不确定我是否做错了,或者“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com