我在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,我如何使用不同的图像动画纹理,就像我们在精灵动画中一样?
任何人都可以给我任何解决这个问题的方向吗?
答案 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++];
}
}