我在 iOS 中使用 SpriteKit 已经有一段时间了;现在我正在为 Mac 开发一个应用程序。
我像往常一样设置了纹理图集:
- 为项目和目标启用纹理图集生成(我从“基于文档的应用程序”模板开始,而不是“SpriteKit 游戏”。它有不同的构建设置)。
- 将所有单独的纹理图像文件拖到一个文件夹中,
- 将文件夹重命名为"Something.atlas" ,
- 将文件夹添加到项目中,
- 在运行时,按名称(即
[SKTextureAtlas atlasNamed:@"Something"];
)创建图集。 - 按名称(即
[_atlas textureNamed:@"MyTexture"];
)获取单个“纹理”并使用它们创建SKSpriteNode
实例。
我正在异步预加载图集,但永远不会调用完成处理程序(请参阅注释):
_atlas = [SKTextureAtlas atlasNamed:@"Something"];
if (!_atlas) {
NSLog(@"Error: Failed to create atlas!");
// This line doesn't execute, so atlas is not nil.
}
[_atlas preloadWithCompletionHandler:^(void){
// This block doesn't get executed either,
// so atlas loading somehow fails...
NSLog(@"Atlas Loaded!");
[self createSprites];
}];
当我检查构建产品的包内容(例如MyApp.app)时,在资源子目录中我可以看到 atlas 文件夹(“Something.atlasc”),但它只包含一个没有条目的 .plist 文件,并且图像资源无处可寻……那又是什么呢?