`
473687880
  • 浏览: 535766 次
文章分类
社区版块
存档分类
最新评论

【玩转cocos2d-x之十六】滚动字幕和公告

 
阅读更多

原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12991977


滚动字幕和公告是游戏中经常使用到的元素,本文大致写一下实现方法,至于例子中具体的坐标值,请不要纠结。。。这和美工关系还是蛮大的。我PS技术太搓了。。。


1.原理

其实它们的实现都是简单的通过调用update来更新位置达到的移动效果,和背景滚动有点类似,一旦滚动结束就重置为起点,开始新的滚动。只是为了达到在某个区域内滚动而不至于超出这个区域,有时候会用一些前景图来做遮盖,所以这个时候其实字幕或者公告是有在后面滚动的,但是被遮住了,因此看起来就像是只在某个区域内滚动。以垂直字幕滚动为例说明,如下图。



2.实现

不要纠结以下各精灵坐标位置:)

  1. boolCTestLayer::init()
  2. {
  3. boolbRet=false;
  4. do
  5. {
  6. CC_BREAK_IF(!CCLayer::init());
  7. CCSizevisibleSize=CCDirector::sharedDirector()->getVisibleSize();
  8. CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("ui_serverlist.plist");
  9. //垂直滚动字幕
  10. CCSprite*listbase=CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_listbase.png"));//bottom底图
  11. listbase->setPosition(ccp(visibleSize.width/2,visibleSize.height/2+10));
  12. this->addChild(listbase);
  13. text1=CCLabelTTF::create("1.Hi!WelcometoJackyStudio,\nMyBlogis\nblog.csdn.net/jackystudio!\n2.Hi!WelcometoJackyStudio,\nMyBlogis\nblog.csdn.net/jackystudio!\n3.Hi!WelcometoJackyStudio,\nMyBlogis\nblog.csdn.net/jackystudio!\n4.Hi!WelcometoJackyStudio,\nMyBlogis\nblog.csdn.net/jackystudio!","Arial",12);//middle文本
  14. text1->setHorizontalAlignment(kCCTextAlignmentLeft);//左对齐
  15. text1->setAnchorPoint(ccp(0.5,1));
  16. text1->setPosition(ccp(visibleSize.width/2,visibleSize.height/2-55));
  17. this->addChild(text1);
  18. CCSprite*fg=CCSprite::create("fg.png");//top前景
  19. fg->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));
  20. this->addChild(fg);
  21. //水平滚动公告
  22. CCSprite*textbase=CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_textbase.png"));
  23. textbase->setPosition(ccp(visibleSize.width/2,50));
  24. textbase->setScaleX(2.5f);
  25. this->addChild(textbase);
  26. text2=CCLabelTTF::create("Hi!WelcometoJackyStudio,MyBlogisblog.csdn.net/jackystudio!","Arial",12);
  27. text2->setPosition(ccp(visibleSize.width+text2->getContentSize().width/2,50));
  28. text2->setColor(ccc3(255,0,0));//红色字体
  29. this->addChild(text2);
  30. this->scheduleUpdate();//执行更新
  31. bRet=true;
  32. }while(0);
  33. returnbRet;
  34. }
  35. voidCTestLayer::update(floatdelta)
  36. {
  37. CCSizevisibleSize=CCDirector::sharedDirector()->getVisibleSize();
  38. intnewY=text1->getPositionY()+1;
  39. if(newY==500)//如果滚动到这个位置,重置
  40. {
  41. newY=visibleSize.height/2-55;
  42. }
  43. text1->setPositionY(newY);
  44. intnewX=text2->getPositionX()-1;
  45. if(newX<=-text2->getContentSize().width/2)//如果滚动到这个位置,重置
  46. {
  47. newX=visibleSize.width+text2->getContentSize().width/2;
  48. }
  49. text2->setPositionX(newX);
  50. }


3.效果

这个效果有点小bug,就是文字覆盖到边框上了,这是因为没有把边框做在top层上导致的,实际使用注意这个问题即可。




4.源码下载

http://download.csdn.net/detail/jackyvincefu/6434549

分享到:
评论

相关推荐

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    cocos2d-x-3.1.zip

    Cocos2d-x是一个开源的游戏开发框架,广泛用于2D游戏、实时渲染应用程序和其他互动内容的制作。这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    cocos2d-x 是一个跨平台的游戏开发框架,它基于C++,同时提供了Lua和JavaScript的绑定,让开发者可以方便地在多种操作系统上创建2D游戏、演示程序和其他图形交互应用。这个“cocos2d-x-3.8.zip”压缩包包含的是cocos...

    Cocos2d-x实战:C++卷(2版)源代码

    在Cocos2d-x中,C++作为主要的编程语言,相比初版,第二版可能涵盖了更多Cocos2d-x的新特性和优化。C++的使用可以提供更好的性能和更直接的内存管理,同时也能充分利用面向对象编程的特性来构建复杂的游戏逻辑。 源...

    cocos2d-x windows vs2010配置

    接下来,把 F:\cocos2d-1.0.1-x-0.9.1\cocos2dx 和 F:\cocos2d-1.0.1-x-0.9.1\CocosDenshion 这两个文件夹里面的全部内容拷贝一份到 D:\cocos2d-xProjects\HelloWorld 中去。 九、设置静态链接库 接下来,打开 F:\...

    cocos2d-x-3.13.1 spine3.6.zip

    Cocos2d-x提供了一个SpineNode类,它是Cocos2d-x的CCNode的子类,可以直接在场景中添加和管理Spine动画。通过Lua绑定,你可以轻松地调用Spine的API来播放、停止、暂停或重置动画,以及改变动画的速度、时间缩放等...

    cocos2d-x_v3.16安装及环境变量配置文档

    cocos2d-x 是一个开源的游戏开发框架,使用 C++ 语言编写,支持多平台发布,包括 iOS、Android、Windows、macOS、Linux 和 Web。cocos2d-x v3.16 是该框架的一个版本号,本文档主要介绍了该版本的安装流程以及环境...

    cocos2d-x API中文文档

    cocos2d-x是一个基于MIT许可证的开源游戏引擎,它以快速、简单且功能强大的特性闻名,允许开发者使用C++、Lua和JavaScript进行跨平台开发,支持包括iOS、Android、Windows Phone、Blackberry以及Tizen在内的多个平台...

    cocos2d-x-cocos2d-x-2.2.2.zip

    这个压缩包“cocos2d-x-cocos2d-x-2.2.2.zip”包含了cocos2d-x 的2.2.2版本,该版本是cocos2d-x发展中的一个重要里程碑,它提供了许多改进和优化,使得开发者能够更加高效地创建2D游戏和应用。 在cocos2d-x 2.2.2中...

    cocos2d-x 动画工具 Flash2Cocos2d-x 1.3

    而Flash2Cocos2d-x则是一个专为cocos2d-x设计的动画工具,它使得开发者能够将Flash内容轻松地转换为可以在cocos2d-x上运行的游戏资源,极大地提高了开发效率和内容创作的灵活性。 Flash2Cocos2d-x 1.3版本是这个...

    Cocos2d-x实战C++卷关东升著完整版pdf

    《Cocos2d-x实战C++卷》是关东升所著的一本深入探讨Cocos2d-x游戏引擎开发的专业书籍。Cocos2d-x是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言为主要编程...

    cocos2d-x 3.0

    本篇文章将深入探讨cocos2d-x 3.0中实现人物行走的关键技术和步骤,以及如何结合提供的代码和图片资源进行实践。 一、cocos2d-x 3.0简介 cocos2d-x 3.0是cocos2d-x系列的一个重要升级,它基于C++编写,支持跨平台...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5).zip

    cocos引擎老版本下载集合(cocos2d-x-2.2.1 - 3.5),分别有cocos2d-x-3.5、cocos2d-x-3.4、cocos2d-x-3.2、cocos2d-x-2.2.6、cocos2d-x-2.2.2和cocos2d-x-2.2.1。

    Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整

    由于Cocos2d-x支持多种编程语言(包括C++、JavaScript和Lua),Cocos2d-JS意味着开发者可以采用JavaScript来构建游戏项目。 4. PDF电子书下载:这是提供给读者的下载格式,即PDF(便携式文档格式),它是一种通用的...

    cocos2d-x-2.1.5

    cocos2d-x-2.1.5

    cocos2d-x-2.1.4.rar

    cocos2d-x 是一个跨平台的2D游戏开发框架,它为开发者提供了强大的工具和技术支持,使得游戏开发变得更为便捷。2.1.4 版本是这个框架的一个重要里程碑,它在前一版本的基础上进行了一系列的优化和改进,提升了性能,...

    使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏

    《使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏》...通过学习和分析这个项目,开发者不仅可以掌握cocos2d-x的基本用法,还能了解到益智类游戏的设计思路和实现技巧,为自己的游戏开发之路打下坚实的基础。

    cocos2d-x 滚动字幕和公告

    在cocos2d-x游戏开发中,滚动字幕和公告是常见的交互元素,它们用于向玩家展示游戏信息、公告更新或者剧情叙述。cocos2d-x是一个跨平台的2D游戏开发框架,支持多种操作系统,如iOS、Android、Windows等。在v2.2.0...

Global site tag (gtag.js) - Google Analytics