【cocos2d-x】公告栏的实现-文字左右移动
来源:互联网 发布:北京 气象站数据 编辑:程序博客网 时间:2024/06/04 19:27
添加公告栏的方法(右侧出来,左侧消失)
公告栏用的是node节点,锚点位置是(0,0),文字信息使用CCLabelTTF保存,锚点位置是(0,0),使用的时候将它加入到node里面就好了
文字移动的思路是:每次都update公告的CCLabelTTF的坐标,为了让它从右往左进行移动,右边栏出来,左边栏消失,需要设置一下CCLabelTTF的可显示区域,CCLabelTTF::setTextureRect函数正是设置Label的可显示区域,因此左右边界需要特殊处理,解决方法:
// TODO:初始化公告栏void InitAnnounceMsg();void UpdateTopAnnounce(float dt);CCRect m_informRect;CCLabelTTF *m_inform; // 公告栏文本float m_informScrollX;// TODO:公告栏void CMainMenu::InitAnnounceMsg(){string strInform;Struct_Sysnotice notice;CTableCache<Struct_Sysnotice> *table = sDBMgr->GetTable<Struct_Sysnotice>();for (int i=1; i<=table->GetNumRows(); ++i){if (table->GetEntry(i, ¬ice)){strInform += notice.m_noticecontent;strInform += " ";}}CCSize size = m_nodes["node_inform"]->getContentSize();m_inform = CCLabelTTF::create(strInform.c_str(), "Arial", 24);m_inform->setAnchorPoint(ccp(0, 0));m_inform->setPosition(CCSize(size.width, 0));m_informScrollX = size.width;m_informRect = m_inform->getTextureRect();m_nodes["node_inform"]->addChild(m_inform);this->schedule(schedule_selector(CMainMenu::UpdateTopAnnounce), 0.01f);}void CMainMenu::UpdateTopAnnounce(float dt){CCPoint pt = m_nodes["node_inform"]->getPosition();CCSize size = m_nodes["node_inform"]->getContentSize();// 文字X轴的左边界m_informScrollX -= 1.0f;if (m_informScrollX < -m_informRect.size.width){m_informScrollX = size.width;m_inform->setTextureRect(CCRectMake(0, 0, m_informRect.size.width, size.height));}// 文字从右边出来int expose = size.width-m_informScrollX;if (expose < m_informRect.size.width){// 文字部分未全部显示出来m_inform->setTextureRect(CCRectMake(0, 0, expose, size.height));}else{// 文字部分已经从右边全部显示出来m_inform->setTextureRect(CCRectMake(0, 0, m_informRect.size.width, size.height));}// 文字从左边消失if (m_informScrollX <= 0){float offset = fabs(m_informScrollX);m_inform->setTextureRect(CCRectMake(offset, 0, m_inform->getTextureRect().size.width-offset, size.height));return ;}m_inform->setPosition(CCSize(m_informScrollX, 0));}
- 【cocos2d-x】公告栏的实现-文字左右移动
- cocos2d-x学习日志(15) --公告栏的实现(文字左右移动)
- cocos2d-x文字移动
- asp.net中用MARQUEE实现流动文字的公告栏
- 实现文字的左右滑动
- cocos2d-x底层修改实现的文字描边解决方案
- Cocos2d-x Box2d中实现刚体的移动
- 滚动的公告栏的实现
- cocos2d-x 实现图片加文字菜单
- Cocos2d-x 实现静态进度条,文字滚动
- cocos2d-x实现文字输入框以及字符串中文字的提取
- html 实现文字左右滚动的方法
- JS实现文字的左右滚动
- 怎么让C#的label的文字左右移动
- cocos2d-x 成排的文字按钮
- Cocos2d-x 3.2 显示文字的方法
- 实现文字左右对齐
- 左右的移动<<>><>jQuery的实现
- c/c++ 复习基础要点01-const指针、指针函数 函数指针、new/delete与malloc/free区别与联系
- awk之行与列的count & sum命令总汇
- poj 2433 Landscaping 贪心
- VC6操作XLS
- Uninstall GOM Player with WindowsUninstaller.Org Removal Tips
- 【cocos2d-x】公告栏的实现-文字左右移动
- 史上最强最全VC6.0到VS2013全部版本下载地址
- 【cocos2d-x】无限重复动作-新手引导箭头上下移动
- android -- WatchDog看门狗分析
- ArrayList/List 泛型集合
- amoeba安装
- linear regression 条件
- POJ1125 股票经纪人的信息来源
- BNU10878:下载测速