CTestLayer.h
#ifndef __TEST_LAYER__ #define __TEST_LAYER__ #include "cocos2d.h" USING_NS_CC; class CTestLayer : public cocos2d::CCLayer { public: CTestLayer(void); ~CTestLayer(void); virtual bool init(); CREATE_FUNC(CTestLayer); virtual void update(float dt); CCLabelTTF* text1; CCLabelTTF* text2; }; #endif //__TEST_LAYER__
CTestLayer.cpp
#include "TestLayer.h" CTestLayer::CTestLayer(void) { } CTestLayer::~CTestLayer(void) { } bool CTestLayer::init() { bool bRet = false; do { CC_BREAK_IF(!CCLayer::init()); CCSize visibleSize=CCDirector::sharedDirector()->getVisibleSize(); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("ui_serverlist.plist"); //垂直滚动字幕 CCSprite* listbase=CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_listbase.png")); listbase->setPosition(ccp(visibleSize.width/2,visibleSize.height/2+10)); this->addChild(listbase); text1=CCLabelTTF::create("1.Hi! Welcome to JackyStudio,\nMy Blog is\nblog.csdn.net/jackystudio!\n2.Hi! Welcome to JackyStudio,\nMy Blog is\nblog.csdn.net/jackystudio!\n3.Hi! Welcome to JackyStudio,\nMy Blog is\nblog.csdn.net/jackystudio!\n4.Hi! Welcome to JackyStudio,\nMy Blog is\nblog.csdn.net/jackystudio!","Arial",12); text1->setHorizontalAlignment(kCCTextAlignmentLeft); text1->setAnchorPoint(ccp(0.5,1)); text1->setPosition(ccp(visibleSize.width/2,visibleSize.height/2-55)); this->addChild(text1); CCSprite* fg=CCSprite::create("fg.png"); fg->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); this->addChild(fg); //水平滚动公告 CCSprite* textbase=CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_textbase.png")); textbase->setPosition(ccp(visibleSize.width/2,50)); textbase->setScaleX(2.5f); this->addChild(textbase); text2=CCLabelTTF::create("Hi! Welcome to JackyStudio,My Blog is blog.csdn.net/jackystudio!",12); text2->setPosition(ccp(visibleSize.width+text2->getContentSize().width/2,50)); text2->setColor(ccc3(255,0)); this->addChild(text2); this->scheduleUpdate(); bRet = true; } while (0); return bRet; } void CTestLayer::update( float dt ) { CCSize visibleSize=CCDirector::sharedDirector()->getVisibleSize(); int newY = text1->getPositionY()+1; if (newY == 500) { newY = visibleSize.height/2-55; } text1->setPositionY(newY); int newX = text2->getPositionX()-1; if (newX <= -text2->getContentSize().width/2) { newX = visibleSize.width+text2->getContentSize().width/2; } text2->setPositionX(newX); }
使用:
CTestLayer* testLabel = CTestLayer::create(); CC_BREAK_IF(!testLabel); this->addChild(testLabel);
运行效果: