Sprite Kit 动画:Atlas 错误

Posted

技术标签:

【中文标题】Sprite Kit 动画:Atlas 错误【英文标题】:Sprite Kit Animation: Atlas Error 【发布时间】:2014-05-07 21:40:01 【问题描述】:

我将纹理图集拖到我的项目中。图片命名正确(“heliani_1-9”) 动画运行流畅,除了 3 帧,在白地上显示为大红色十字。 (见附件截图)

我的代码有什么问题?

干杯

#import "MRMPlayer.h"

@implementation MRMPlayer

-(instancetype)init

    self = [super init];
    

        [self setupAnimations];

        [self runAction:[SKAction repeatActionForever:[SKAction animateWithTextures:self.runFrames timePerFrame:0.5 resize:YES restore:NO]] withKey:@"heli"];

        self.name = playerName;
    
    return self;



-(void) setupAnimations
    self.runFrames = [[NSMutableArray alloc]init];
    SKTextureAtlas *heliAtlas = [SKTextureAtlas atlasNamed:@"heli"];

    for (int i = 0; i < [heliAtlas.textureNames count]; i++) 
        NSString *tempName = [NSString stringWithFormat:@"heliani_%d",i];
        SKTexture *tempTexture = [heliAtlas textureNamed:tempName];
        if(tempTexture) 
            [self.runFrames addObject:tempTexture];
        
    



@end

【问题讨论】:

大红色 X 表示在您的图集中找不到图像。确认您拥有所有您认为拥有的图像,用于您的图集中的动画。 我知道,我查了好几遍。他们在那里并正确命名。我什至清理了我的项目几次,尝试了重命名的项目,我没有摆脱它。 s7.directupload.net/images/140507/rxv7kwtk.png 我用我的大眼睛发现图像 6 的命名不一致 :) 不确定这是否会导致您的所有问题,但肯定会有所贡献。 谢谢你,我怎么能这样忽视? :D 不幸的是错误仍然出现:( 我看不出您发布的代码有什么问题。错误可能在您的实际图像中或完全在其他东西中。我建议你试试 Texture Packer。它创建纹理图集,甚至制作动画。您可以在这里下载免费副本@​​987654322@ 【参考方案1】:

转到产品菜单,您将看到Clean 选项。

现在,按住键盘上的option 按钮,文本应变为Clean build folder...

选择该选项,它将另外删除缓存很多东西的衍生数据文件夹,包括纹理图集,我发现会导致您描述的问题。如果您重命名图集中的文件,那通常是我自己遇到此问题的时候。

我不喜欢这个选项是你必须为之工作的东西,如果不需要按住选项键就可以有第二个选项就好了。

如果这不能解决问题,那么你确实有一个命名问题 imo。

注意 您也可以从管理器窗口中删除衍生数据文件夹。

【讨论】:

谢谢,但错误仍然存​​在。我将自己创建新的 PNG,然后再试一次。我需要一个支持才能支持 cmets(我目前有 14 个)请给我一个支持,我会支持你的答案。干杯 我会检查您的文件名是否与您的代码所查找的内容有任何差异。动画的帧是图集中唯一的帧吗?您正在循环中使用图集的count 属性来确定帧号。因此,如果该图集中除了您的动画之外还有其他纹理,也可能会导致同样的问题。 好的,刚刚注意到您从 0 开始循环,而在您的地图集中,没有 heliani_0。这可能会导致一个大的红色 x。你做一个测试看看纹理是否存在,可能会在那里扔一个NSLog,这样你就可以看看如果0是索引,测试是否为假。 感谢上帝,先生!当然,这就是问题所在。我需要我从 1 而不是 0 开始。你是最棒的!非常感谢!

以上是关于Sprite Kit 动画:Atlas 错误的主要内容,如果未能解决你的问题,请参考以下文章

Sprite Kit runAction 延迟,奇怪的错误?

在 Sprite Kit 中为我的角色设置动画?

iOS 7 Sprite Kit 动画速度变化

如何通过 Sprite Kit 中的 CGPoints 数组制作动画 - Swift

Sprite Kit Textures Acting Funny

用Swift语言和Sprite Kit复制微信飞机大战游戏