使用spritesheet为CCTexture2D设置动画

时间:2013-05-21 13:46:17

标签: cocos2d-iphone cctexturecache

我在Zwoptex制作了spritesheet,我知道TexturePacker比这更好,但我刚开始使用cocos2d iphone,所以没有购买。

我使用以下代码制作了CCTexture2D。

texture = [[CCTextureCache sharedTextureCache] addImage:@"1.png"];
    self.shaderProgram = [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTexture];
CC_NODE_DRAW_SETUP();

我使用此CCtexture2D对象在柔体周围绘制纹理。使用以下代码。

ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position | kCCVertexAttribFlag_TexCoords);
ccGLBindTexture2D([texture name]);
glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, textCoords);
glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_TRUE, 0, triangleFanPos);
glDrawArrays(GL_TRIANGLE_FAN, 0, NUM_SEGMENT+2);
ccGLEnableVertexAttribs( kCCVertexAttribFlag_Color);

现在我要为柔体的纹理设置动画。我知道如何使用spritesheet动画精灵。但现在我混淆了如何使用spritesheet制作CCTexture2D,我如何使用不同的图像动画纹理,就像我们在精灵动画中一样?

任何人都可以给我任何解决这个问题的方向吗?

1 个答案:

答案 0 :(得分:0)

首先,我想对这个问题说抱歉。我想在这里分享我的代码。我想要为柔软的身体赋予纹理动画。

我很困惑,我怎样才能将新图像赋予cctexture2d对象并以之前纹理角度的角度旋转。但我知道cocos2d iphone会自动处理它。

我通过给它延迟的图像序列来设置我的texture2d对象的动画。代码如下所示。

调用函数

-(void)changeTexture1:(NSNumber*)i{
    texture = [[CCTextureCache sharedTextureCache] addImage:[NSString stringWithFormat:@"blink%@.png",i]];
}

通话功能:

-(void)makeAnimation{
    for (int i = 2; i<7; i++) {
        [self performSelector:@selector(changeTexture1:) withObject:[NSNumber numberWithInt:i] afterDelay:0.1*i];
    }
    int j = 1;
    for(int i=6;i>0;i--){
         [self performSelector:@selector(changeTexture1:) withObject:[NSNumber numberWithInt:i] afterDelay:0.1*6 + 0.1*j++];
    }
}