您的位置:首页 > 移动开发 > Cocos引擎

[Cocos2d-x]视差滚屏效果的实现

2013-09-09 21:10 253 查看

视差滚屏效果的实现:

我们在做IOS游戏开发的时候,经常会遇到那种屏幕动的效果,比如跑酷类的游戏,就这这种效果的典型应用。

效果图:



核心代码:

bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}

CCSize screenSize = CCDirector::sharedDirector()->getWinSize();
CCSprite *para1 = CCSprite::create("parallax1.png");
CCSprite *para2 = CCSprite::create("parallax2.png");
CCSprite *para3 = CCSprite::create("parallax3.png");
CCSprite *para4 = CCSprite::create("parallax4.png");
para1->setAnchorPoint(CCPointMake(0, 1));
para2->setAnchorPoint(CCPointMake(0, 1));
para3->setAnchorPoint(CCPointMake(0, 0.6f));
para4->setAnchorPoint(CCPointMake(0, 0));
CCPoint topOffset = CCPointMake(0, screenSize.height);
CCPoint midOffset = CCPointMake(0, screenSize.height/2);
CCPoint downOffset = CCPointMake(0, 0);
CCParallaxNode* paraNode = CCParallaxNode::create();
paraNode->addChild(para1, 1, CCPointMake(0, 10), topOffset);
paraNode->addChild(para2, 2, CCPointMake(0, 10), topOffset);
paraNode->addChild(para3, 3, CCPointMake(0, 10), midOffset);
paraNode->addChild(para4, 4, CCPointMake(0, 10), downOffset);
this->addChild(paraNode,2,1);

CCMoveBy*move1 = CCMoveBy::create(3, CCPointMake(0, -160));
CCMoveBy*move2 = CCMoveBy::create(3, CCPointMake(0, 160));
CCSequence*sequence = CCSequence::create(move1,move2,NULL);
CCRepeatForever *repeat = CCRepeatForever::create(sequence);
paraNode->runAction(repeat);

return true;
}

资源下载[猛戳]

原码:http://download.csdn.net/detail/s10141303/6239585
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: