【cocos2d-x IOS游戏开发-城市跑酷15】完善积分板【CCLabelBMFont】

尊重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/17326783


<捕鱼达人>回顾

【cocos2d-x IOS游戏开发-捕鱼达人1】内容介绍

上节回顾

【cocos2d-x IOS游戏开发-城市跑酷14】重写触屏[Touch]事件处理机制,响应玩家操作


CCLabelBMFont的特色就是以占用更多内存为代价加快标签的更新,这与其他任何CCSprite类相似;

在游戏中使用位图字体是个很棒的选择,但位图字体也有很大的不足之处。任意位图字体的大小都是固定的。如果需要同一字体的不同字号,可以缩放CCLabelBMFont——但字号增大时会损失图像质量,字号减小时会浪费内存。你还可以另外创建一个与原来字体大小不同的字体文件,但是这样会使用更多内存,因为即使只有字体大小不同,每个位图字体也都有其特有的纹理。


font图片资源:



来看具体的实现:

在定义一个变量:

CCLabelBMFont * _scoreDisplay;

加入积分板:

    //加入积分板
    _scoreDisplay = CCLabelBMFont::create("000000", "font.fnt", _screenSize.width * 0.3f, kCCTextAlignmentCenter);
    _scoreDisplay->setAnchorPoint(ccp(1,0));
    _scoreDisplay->setPosition(ccp(_screenSize.width * 0.95f, _screenSize.height * 0.88f));
    this->addChild(_scoreDisplay, kBackground);
在游戏的update里更新积分:

	if (_terrain->getStartTerrain() && _player->getVector().x > 0) {

        _score += dt * 50;
        char szValue[100] = {0};
        sprintf(szValue, "%i", (int) _score);
        _scoreDisplay->setString (szValue);
		_speedIncreaseTimer += dt;
		if (_speedIncreaseTimer > _speedIncreaseInterval) {
			_speedIncreaseTimer = 0;
			_player->setMaxSpeed (_player->getMaxSpeed() + 4);
		}
	}


可以看到右上角的效果图:

【cocos2d-x IOS游戏开发-城市跑酷15】完善积分板【CCLabelBMFont】_第1张图片

你可能感兴趣的:(字体,游戏开发,cocos2d-x,位图,城市跑酷)