用于animateWithTextures的纹理迷路了。 有些框架显示红色X.

我的xCode项目有以下…

AppDelegate中

GameViewController

OpeningScene

MainMenuScene

GameScene

当游戏开始时,AppDelegate创build一个包含所有纹理的数组,我将使用…

[self.texturesArray addObject:[SKTexture textureWithImageNamed:@"Background05.jpg"]]; 

有大约120个纹理。

然后我预先使用…

  [SKTexture preloadTextures:self.texturesArray withCompletionHandler:^{ NSLog(@"************ Finished Preloading Textures in AppDelegate.m *************"); [[STGD sharedGD].currentScene presentMainMenuScene]; }]; 

然后,我提出的OpeningScene,等待上述完成处理程序告诉它显示主菜单。

这是问题…

在主菜单(animateWithTextures)中使用预加载纹理的一个animation。 有时某些框架丢失,并以红色的X表示,通常表示无法find的文件。 如果发生这种情况,则总是会发生以下情况:切换到游戏场景时使用相同的animation(虽然GameScene中的animation尺寸较大),并且相同的帧将会丢失并显示红色的X.一个MainMenuScene和一个GameScene(每次重新创build每个场景)和相同的框架将会消失,直到我重新启动应用程序。

我知道纹理正在代码中正确创build,因为大部分时间它工作正常。 但是在15个结果中有一个发生了一些animation纹理丢失。 而每次发生时,都不会有相同的帧,甚至是相同数量的帧。 如果这意味着什么,它们也不是相邻的框架:P

在我开始使用预加载之前,我不相信这发生过。 但没有预加载我的最初fps是垃圾。

欣赏任何见解! 谢谢!

更新:

这里是我如何填充Star.m中的纹理数组。 Star对象用于MainMenuScene和GameScene

  self.animationSlides = [NSMutableArray arrayWithCapacity:45]; for (int i = 0; i < 45; i++) { NSString *fileName; if (i < 10) fileName = [NSString stringWithFormat:@"Star03-03-0%i.png", i]; else fileName = [NSString stringWithFormat:@"Star03-03-%i.png", i]; [self.animationSlides addObject:[SKTexture textureWithImageNamed:fileName]]; } 

然后我在Star.m中创build一个精灵

  self.animationSprite = [SKSpriteNode spriteNodeWithImageNamed:@"Star03-03-00.png"]; 

然后在Star.m中进行animation处理

  [self.animationSprite runAction:[SKAction repeatActionForever:[SKAction animateWithTextures:self.animationSlides timePerFrame:0.0666]]]; 

我只在设备上testing,没有模拟器。 我已经从我的设备中删除了应用程序,然后在重新安装之前执行了产品 – >清理。 我会让你知道这是否解决了这个问题。

谢谢!