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

时间:2014-08-12 23:01:03

标签: ios objective-c xcode ios7 sprite-kit

所以我一直在编写我的第一个iOS应用程序,学习Objective-C和sprite kit。我的“场景”变得非常流行,每当我在模拟器中运行游戏时,游戏中的前四分之一有点“抖动”并且难以控制,但随后从那里以60.0fps的速度运行。如何让场景完全加载并准备好在实际开始之前播放?

1 个答案:

答案 0 :(得分:1)

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

为图像使用纹理图集。您可以从Sprite Kit Programming Guide获取有关纹理图集的更多信息。

以下是如何预加载纹理Atlas的代码示例:

-(void)loadMyAtlas
{
    SKTextureAtlas *myAtlas = [SKTextureAtlas atlasNamed:@"TextureAtlasName"];
    [SKTextureAtlas preloadTextureAtlases:[NSArray arrayWithObject:myAtlas] withCompletionHandler:^{
        // do something here
    }];
}

Texture Packer是来自CodeAndWeb的免费应用程序,可让您轻松创建纹理图集,包括动画。尝试一下。

CodeAndWeb在预加载实践,纹理图集和动画方面也有一个有趣的article

要完成,正如原型所示,这里有预加载声音和字体的方法:

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

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

延迟是基于字体的加载。最好预加载您打算使用的字体,声音和任何其他资源,以便在第一次实际使用时没有延迟。

您可以使用以下代码预加载设置:SKLabelNode *preload = [SKLabelNode labelNodeWithFontNamed:@"System"];