0

我将纹理图集拖到我的项目中。图片命名正确(“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
4

1 回答 1

2

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

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

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

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

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

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

于 2014-05-08T00:32:36.287 回答