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//背景框
经验条。 一个背景条,一个满得经验条就搞定,剩下得就是设置经验条得显示部分了
只需要用到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//背景框
相关文章推荐
- cocos2d-x 实现静态进度条,文字滚动,以及介绍动态进度条CCProgressTimer
- JavaScript一点也不简单—实现“鼠标控制局部文字滚动效果”初探
- 不用JAVA就能实现文字自动滚动
- 实现不间断向上滚动文字的特效
- Js 实现文字爬楼滚动效果 结合文本框
- 关于符合WEB标准的滚动文字特效的实现方法
- 文字横向滚动的实现
- Marquee配合DIV实现的文字滚动效果代码
- CTextWnd轻松实现文字的滚动
- CTextWnd轻松实现文字的滚动
- 单行多行文字滚动 停顿jquery实现
- Static控件和状态栏文字滚动效果实现
- 『改进』逐行滚动文字效果的Javascript实现
- 用marquee标签实现文字滚动
- 用JavaScript实现上下文字滚动特效
- WAP中实现文字滚动
- 利用appendChild 5行代码实现全兼容的文字滚动效果
- 一个js实现任务栏文字滚动效果
- 文字滚动的技术实现
- Jquery:单行滚动、批量多行滚动、文字图片翻屏滚动效果的实现