2013-05-21 43 views
0

我已經在Zwoptex製作了spritesheet,我知道TexturePacker比這更好,但我剛剛開始使用cocos2d iphone,所以沒有購買。使用spritesheet動畫CCTexture2D

我使用以下代碼製作了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動畫sprite。但現在我很困惑如何使用spritesheet製作CCTexture2D,以及如何使用不同的圖像製作動畫紋理,就像我們在精靈動畫中做的那樣?

任何人都可以給我解決這個問題的任何方向?

回答

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++]; 
    } 
}