0

我在 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 以及如何使用不同的图像制作纹理动画,就像我们在 sprite 动画中所做的那样?

谁能给我解决这个问题的任何方向?

4

1 回答 1

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++];
    }
}
于 2013-05-24T09:50:46.793 回答