2013-04-08 54 views
0

使用下面的代码,我可以连续更改我的CCSprite的颜色,但是我需要用此代码更改我的CCSprite图像。我怎样才能做到这一点?连续切换精灵图像(不显示动画)

注意:不希望只显示框架更改的动画,我需要选择稍后在代码中不断更改的其中一个精灵。

id delayTime1 = [CCDelayTime actionWithDuration:0.05f]; 
    id calFun1 = [CCCallBlock actionWithBlock:^{ 
     //HERE SET BLUE TEXTURE.. 
     // m_spriteBubbleWeapon= [CCSprite spriteWithFile:[NSString stringWithFormat:@"firstimage.png"]];// //kill when i uncomment it 

     m_spriteBubbleWeapon.color = ccc3(255,0,255); // works current 

    }]; 
    id delayTime2 = [CCDelayTime actionWithDuration:0.05f]; 
    id calFun2 = [CCCallBlock actionWithBlock:^{ 
     //HERE SET RED TEXTURE.. 
     //m_spriteBubbleWeapon= [CCSprite spriteWithFile:[NSString stringWithFormat:@"second image.png"]];//kill when i uncomment it 

     m_spriteBubbleWeapon.color = ccc3(255,0,0);//work correct 

    }]; 

    id sequece = [CCSequence actions:delayTime1, calFun1, delayTime2, calFun2, nil]; 
    id repeate = [CCRepeatForever actionWithAction:sequece]; 

    [sprite runAction:repeate]; 

回答

4

定义在类中的属性tex1和更早TEX2(如INIT):

CCTexture2D* tex1 = [[CCTextureCache sharedTextureCache] addImage:@"firstimage.png"]; 
CCTexture2D* tex2 = [[CCTextureCache sharedTextureCache] addImage:@"secondimage.png"]; 

然后交换纹理在代码中存在的精灵:

id delayTime1 = [CCDelayTime actionWithDuration:0.05f]; 
id calFun1 = [CCCallBlock actionWithBlock:^{ 
    //HERE SET BLUE TEXTURE.. 
    [m_spriteBubbleWeapon setTexture:tex1]; 
    m_spriteBubbleWeapon.color = ccc3(255,0,255); // works current 
}]; 

。 ..

//HERE SET RED TEXTURE.. 
    [m_spriteBubblWeapon setTexture:tex2]; 
+0

@iphonemaclover编辑我的答案 – jyek 2013-04-09 05:19:26