UI-Label自动垂直滚动字幕

TestLayer.h:

#pragma once
#include "cocos2d.h"

USING_NS_CC;

class CTestLayer :
	public CCLayer
{
public:
	CTestLayer(void);
	~CTestLayer(void);

	CREATE_FUNC(CTestLayer);
	virtual bool init();

	virtual void update(float delta);
	CCLabelTTF* text1;
	CCLabelTTF* text2;
};

TestLayer.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!","Arial",12);
		text2->setPosition(ccp(visibleSize.width+text2->getContentSize().width/2,50));
		text2->setColor(ccc3(255,0,0));
		this->addChild(text2);

		this->scheduleUpdate();

		bRet=true;
	} while (0);
	return bRet;
}

void CTestLayer::update(float delta)
{
	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);
}


TestScene.cpp:

#include "TestScene.h"


CTestScene::CTestScene(void)
{
	_testlayer=NULL;
}


CTestScene::~CTestScene(void)
{
}

bool CTestScene::init()
{
	bool bRet=false;
	do 
	{
		CC_BREAK_IF(!CCScene::init());

		_testlayer=CTestLayer::create();
		this->addChild(_testlayer);

		bRet=true;
	} while (0);
	return bRet;
}


TestLayer:

#pragma once
#include "cocos2d.h"
#include "TestLayer.h"

USING_NS_CC;

class CTestScene :
	public CCScene
{
public:
	CTestScene(void);
	~CTestScene(void);

	CREATE_FUNC(CTestScene);
	virtual bool init();
private:
	CTestLayer* _testlayer;
};

效果图:


转载于:https://www.cnblogs.com/Anzhongliu/p/6091857.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值