2012-07-18 65 views
0

在cocos 2d遊戲中,我使用3個心靈小精靈來更新英雄的生命。如果英雄失去了一個生命..一個心臟應該被隱藏起來。cocos2d:CCsprite setVisible方法不起作用

我使用下面的代碼,但它不能正常工作。請幫助我。

- (void)updateLives { 
    int i = _lives; 
    [self livess:(int)i]; 
} 

- (void)livess:(int)ii { 

    CGSize winSize = [CCDirector sharedDirector].winSize; 
    heart1=[CCSprite spriteWithFile:@"heart.png"]; 
    heart2=[CCSprite spriteWithFile:@"heart.png"]; 
    heart3=[CCSprite spriteWithFile:@"heart.png"]; 
    [heart1 setPosition:ccp(winSize.width/2*1.3, winSize.height * 0.9)]; 
    [self addChild:heart1 z:0]; 
    [heart2 setPosition:ccp(winSize.width/2*1.1, winSize.height * 0.9)]; 
    [self addChild:heart2 z:0]; 
    [heart3 setPosition:ccp(winSize.width/2*0.9, winSize.height * 0.9)]; 
    [self addChild:heart3 z:0]; 


    if (ii==3) { 

     NSLog(@"%d",ii); 
    } 
    else if (ii==2) 
    { 
     NSLog(@"%d",ii); 

     [heart3 setVisible:NO]; 

    } else if (ii==1) 
    { 

     NSLog(@"%d",ii); 

     [heart3 setVisible:NO]; 
     [heart2 setVisible:NO]; 
    } 
    else 
    { 

    }   
} 

注:以上code..nslog是印刷..for例如1,2

回答

1

應該從你的代碼正確隱藏正確的價值觀。然而,如果這個updateLives在遊戲循環中被調用,可能你看到它的原因並沒有像你期望的那樣隱藏,而是來自前一幀的內心。嘗試

1)創造更新的heart1,heart2,heart3一旦

2),不創建精靈。即只在你的代碼的一部分保留在那裏。

希望它有幫助。

+0

謝謝你的工作......你只有一個聲望,但你搖滾;) – vishnu 2012-07-18 20:08:59

+0

很高興它是有益的=) – 2012-07-18 20:11:22