【问题标题】:Animate CCTexture2D using spritesheet使用 spritesheet 动画 CCTexture2D
【发布时间】:2013-05-21 13:46:17
【问题描述】:

我在 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 动画中所做的那样?

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

【问题讨论】:

    标签: cocos2d-iphone cctexturecache


    【解决方案1】:

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

    我很困惑,如何将新图像赋予 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++];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-25
      • 2012-04-21
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 2018-10-10
      • 2013-10-27
      • 2021-08-08
      • 2014-06-28
      相关资源
      最近更新 更多