您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-x 实现静态进度条,文字滚动

2014-05-16 09:40 141 查看
相信大家对这个都不陌生吧,

经验条。 一个背景条,一个满得经验条就搞定,剩下得就是设置经验条得显示部分了

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

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

[cpp] view
plaincopy

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

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

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



,先看我是如何实现的:

[cpp] view
plaincopy

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);

[cpp] view
plaincopy

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//背景框
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: