如何在玩游戏之前加载iOS7应用程序场景?

如何在玩游戏之前加载iOS7应用程序场景?,ios,objective-c,xcode,ios7,sprite-kit,Ios,Objective C,Xcode,Ios7,Sprite Kit,所以我一直在编写我的第一个iOS应用程序,学习objective-C和sprite工具包。我的“场景”越来越丰富,每当我在模拟器中运行游戏时,游戏的前四分之一秒有点“紧张”,很难控制,但从那时起,以60.0fps的速度运行。如何让场景在真正开始之前完全加载并准备好播放?在模拟器上测试永远不会给出准确的FPS。始终在实际设备上进行测试 为图像使用纹理图集。您可以从中获得有关纹理地图集的更多信息 下面是如何预加载纹理图集的代码示例: -(void)loadMyAtlas { SKTextur

所以我一直在编写我的第一个iOS应用程序,学习objective-C和sprite工具包。我的“场景”越来越丰富,每当我在模拟器中运行游戏时,游戏的前四分之一秒有点“紧张”,很难控制,但从那时起,以60.0fps的速度运行。如何让场景在真正开始之前完全加载并准备好播放?

在模拟器上测试永远不会给出准确的FPS。始终在实际设备上进行测试

为图像使用纹理图集。您可以从中获得有关纹理地图集的更多信息

下面是如何预加载纹理图集的代码示例:

-(void)loadMyAtlas
{
    SKTextureAtlas *myAtlas = [SKTextureAtlas atlasNamed:@"TextureAtlasName"];
    [SKTextureAtlas preloadTextureAtlases:[NSArray arrayWithObject:myAtlas] withCompletionHandler:^{
        // do something here
    }];
}
是一个免费的应用程序,来自CodeAndWeb,它允许您轻松创建纹理图集,包括动画。试试看

CodeAndWeb还对预加载实践、纹理地图集和动画进行了有趣的研究

完整地说,正如原型所建议的,以下是预加载声音和字体的方法:

创建一个iVar
SKAction*someSound
然后将以下代码与场景的加载代码一起放置
someSound=[SKAction playsoundfilename:@“soundFileName.mp3”waitForCompletion:NO]
使用
[self-runAction:someSound]播放声音

关于预加载字体的典型问题:

延迟取决于字体的加载。最好预先加载字体、声音和任何其他您打算使用的资源,这样在第一次实际使用时就不会有延迟


您可以使用以下命令在设置中预加载:
SKLabelNode*preload=[SKLabelNode-labelnodewithfontname:@“System”]

还应将字体和音频添加到此答案的预加载列表中。Xcode还提供了自己的atlas纹理打包机制