如何在SpriteKit Texture Atlas中使用相同的Cocos2d图像(单个.png)(到多个.png)

时间:2014-10-07 13:24:24

标签: sprite-kit

我有一个单独的.png(由texturepacker生成),我在cocos2d中使用它来设置按钮动画。现在,我正在迁移到SpriteKit(必须)并且在使用纹理图集时,它必须是多个分割文件。我试图通过Shoebox分裂它,但我无法得到正确的序列。我如何做相同的动画?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,你很可能会找到类似的东西。

SKTexture *fullTexture = [SKTexture textureWithImageNamed:@"single.png"];

float widthPercent = 1.0f/(float)columns;
float heightPercent = 1.0f/(float)rows;

NSMutableArray *textureArray = [[NSMutableArray alloc]init];

for (NSInteger i = 0; i < rows; i++)
{

    for (NSInteger j = 0; j < columns; j++)
    {
        SKTexture *texture = [SKTexture textureWithRect:CGRectMake(j*widthPercent, i*heightPercent, widthPercent, heightPercent) inTexture:fullTexture];

        [textureArray addObject:texture];
    }
}

SKAction *animate = [SKAction animateWithTextures:textureArray timePerFrame:.2];
SKAction *repeatAction = [SKAction repeatActionForever:animate];
[yourSprite runAction:repeatAction];

您需要查看textureWithRect:inTexture: here 的文档以获取更多信息。请记住它是0到1的范围。

我希望能回答你的问题,或者至少让你开始朝着正确的方向前进。