2013-04-08 2 views
0

Используя нижеприведенный код, я могу постоянно менять цвет своего CCSprite, НО мне нужно изменить изображение CCSprite с помощью этого кода. Как я могу это сделать?switch sprite image непрерывно (не показывать анимацию)

ПРИМЕЧАНИЕ. Не хотите показывать только анимацию, где изменяется кадр, мне нужно выбрать один из спрайтов, который будет меняться непрерывно позже в моем коде.

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

Смежные вопросы