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