现在的位置: 首页 > 综合 > 正文

cocos2d-x 实现静态进度条,文字滚动,以及介绍动态进度条CCProgressTimer

2018年02月16日 ⁄ 综合 ⁄ 共 1412字 ⁄ 字号 评论关闭

  今天是Cooki第一次写技术类博客,一直想写可是因为太懒了, 哈哈。 这些天才下定决心, 一是本着给自己做笔记, 二来我觉得东西就是要分享出去才能更快乐。 到底要写些什么呢?  就拿我手上的项目来剖析吧。  一款互联网棋牌游戏

 
肖锐(Cooki)个人原创,欢迎转载,转载请注明地址,肖锐(Cooki)的技术博客 
http://blog.csdn.net/xiao0026

  好了,咱进入正题。

 
相信大家对这个都不陌生吧, 经验条。 一个背景条,一个满得经验条就搞定,剩下得就是设置经验条得显示部分了

只需要用到CCSprite::setTextureRect; //设置精灵显示的区域

 假设upExp是升级需要得经验,mySelf->exp是我现在得经验

bgMoney->setTextureRect(CCRectMake(bgMoney->getTextureRect().origin.x, bgMoney->getTextureRect().origin.y, bgMoney->getTextureRect().size.width*((float)mySelf->exp/upExp), bgMoney->getTextureRect().size.height));

这样即可实现。许多人用setScaleX(); 这样做不好的是会使图片变形,所以我不太推荐

接下来谈谈文字滚动, 其实原理都差不多,都是利用他的显示区域. 看图,先看我是如何实现的:

m_talkRect_mc = m_chatViewBox->chatLabelNew->getTextureRect();
        m_talkScrollX_mc = 0.0;
        
        m_chatViewBox -> chatLabelNew -> setTextureRect(CCRectMake(m_talkScrollX_mc, 0,m_chatViewBox -> fkTexture ->getTextureRect().size.width - winSize.width/480*33, m_talkRect_mc.size.height));
        
        schedule(schedule_selector(GameRoomLayer::scrollTalkMessage), 0.05f);

void GameRoomLayer::scrollTalkMessage()
{
    m_talkScrollX_mc += 1.0f;
    if (m_talkScrollX_mc >= m_talkRect_mc.size.width) {
        m_talkScrollX_mc = -winSize.width/480*110;
    }
    m_chatViewBox->chatLabelNew->setTextureRect(CCRectMake(m_talkScrollX_mc, 0, m_chatViewBox->chatLabelNew->getTextureRect().size.width, m_talkRect_mc.size.height));
}

m_chatViewBox->chatLabelNew //CCLabelTTF

 m_talkRect_mc //CCRect        m_talkScrollX_mc//float         m_chatViewBox -> fkTexture//背景框

至于动态进度条CCProgressTimer我打算另写一篇博文来介绍它。

抱歉!评论已关闭.