0

我想CCTimer为 Timer 使用类,但我无法解决。之后我使用手动为此创建了一个函数但似乎没有效果。

protected GameLayer(ccColor4B color)
{
    super(color);

            schedule(new UpdateCallback() {
        @Override
        public void update(float d) {
            countTime(d);
        }
      },0.99f);

}

public void countTime(float scr) {
    if(_label != null){
        this.removeChild(_label,true);
    }
    j=j-(int)scr;

    CGSize winSize = CCDirector.sharedDirector().displaySize();
    _label = CCLabel.makeLabel("Time Left :" + j, "Verdana", 20);
    _label.setColor(ccColor3B.ccGREEN);
    _label.setPosition(155f, winSize.height - 15);
    addChild(_label);

    if(j<=0){
        CCDirector.sharedDirector().pause();
    }

}

它从 1 运行到我要停止的点... !!!

我应该怎么做才能使用CCTimer类来解决这个问题?

4

1 回答 1

1

CCTimer 可用,但我之前没有尝试过,但你可以通过 Timer 类来做这件事:

Timer timer = new Timer();
timer.scheduleAtFixedRate( new TimerTask(){
public void run() {
    updateTimeLabel();
}




public void updateTimeLabel() {
        float time += 1;
        String string = CCFormatter.format("%02d:%02d", (int)(time /60) , (int)time % 60 );
        CCBitmapFontAtlas timerLabel = (CCBitmapFontAtlas) getChildByTag(TIMER_LABEL_TAG) ;
        timerLabel.setString(string);
}
于 2013-07-16T10:41:41.727 回答