在Cocos2d中为时间表添加视觉方面



我正在为我的游戏制作一个从数字开始倒计时的计时器,我们称之为100。我遵循的是cocos2d最佳实践,因此我没有使用NSTimer。我想做的是,每一秒,我都想改变这个计时器的数字。我可能会找到一种方法来使用一个包含100-0所有数字的精灵表,但我知道有一种方法可以只使用数字0-9和它们的图片。

这是我正在使用的代码,带有相应的-(无效)

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

总而言之,我想知道如何让它从100开始倒数,但也想知道如何使这些刻度每秒减少1。

初始化一个将保持倒计时值的整数变量:

int count = 100;

您需要保留一个标签(CCLabelBMFont等)来显示这个计数值。我建议Glyph Designer(或者Hierro,如果你想要免费的话)生成0到9个cocos2D兼容的字体位图,然后你可以在CCLabelBMFont:中使用

CCLabelBMFont* countLabel = [CCLabelBMFont labelWithString:@"0" fntFile:@"myFont.fnt"]; 

接下来,安排一个每秒触发一次的勾选功能:

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

此tick函数每次调用时都会将计数递减1。此外,添加一个条件,即如果计数达到0,它将自行取消计划:

-void tick:(ccTime) dt
{
    count --; // decrement count by 1 each time this function is called
    if (count == 0)
        [self unschedule: @selector(tick:)];      
}

最后,在您的主更新循环中(甚至在递减计数后的tick函数本身中),您可以每次更新并重新绘制带有最新值的标签:

[countLabel setString:[NSString stringWithFormat:@"%i", count]];

一切顺利。

最新更新