5/7 追加標記遊戲進行時間或分數累計

今天試著在遊戲畫面中追加時間,標記時間過多久,一開始把函數定義

-(void) timer:(ccTime)dt{
    CGSize winSize = [CCDirector sharedDirector].winSize;
    ti = 0; //這我宣告在interface裡面了,是cctime的type
    NSString *string = [NSString stringWithFormat:@"%d", ti];
    CCLabelTTF *label = [CCLabelTTF labelWithString:string fontName:@"Helvetica" fontSize:30];
    [self addChild:label z:0];
    label.position = ccp(winSize.width * 0.7, winSize.height * 0.8);
    [label setColor:ccc3(255, 0, 0)];     
}

然後放在init方法裡面,看起來沒有出現。

[self schedule:@selector(timer:)];

可是我看到xcode的debug裡面有出現跳動的時間,卻沒在螢幕上看到?放在update方法也是,怎樣才能顯示在螢幕上呢?

目前的進度是,顯示在螢幕上之後會重復貼上。所以我設定了動畫讓數字自動去淡出,大概0.9秒後淡出,然後將init裡面的schedule:呼叫改成:

[self schedule:@selector(timer:) interval:1];

這樣就可以顯示時間了。更改後的timer函數為:


-(void) timer:(ccTime)dt{
    CGSize winSize = [CCDirector sharedDirector].winSize;
    ti = 0;

    NSString *string = [NSString stringWithFormat:@"%d", ti];
    CCLabelTTF *label = [CCLabelTTF labelWithString:string fontName:@"Helvetica" fontSize:30];
    [self addChild:label z:0];
    label.position = ccp(winSize.width * 0.7, winSize.height * 0.8);
    [label setColor:ccc3(255, 0, 0)];
    CCFadeOut *fade = [CCFadeOut actionWithDuration:0.9];
    CCSequence *sequence = [CCSequence actions:fade, nil];
    [label runAction:sequence];       
}//追加淡出動畫


剩下的就是將時間隨著秒數更新,這還沒完成,今天時間不夠了,先這樣吧。

留言