CCParallaxNode-创建滚动背景效果

首先来看看它的创建方式:
 CCParallaxNode::create()
作用:创建一个视觉差效果类。
 
这个类的主要函数:
 addChild(CCNode * child,unsigned int z,CCPoint & parallaxRatio,CCPoint & positionOffset)
作用:添加一个子类“视图层”。
参数1:子类,添加一个CCNode,让其作为视觉差效果中的一个视图层。
参数2:Z轴,视觉差中的遮挡关系。
参数3:x轴、y轴的移动速率。
参数4:子类坐标。


代码:

// 创建bear精灵

CCSprite* bear = CCSprite::create("bear1.png");
//change the transform anchor point to 0,0 (optional)
bear->setAnchorPoint( ccp(0,0) );
//创建 background 精灵最为背景
CCSprite* background = CCSprite::create("bg.png");
// scale the image (optional)
background->setScale( 2.0f );
// change the transform anchor point (optional)
background->setAnchorPoint( ccp(0,0) );

// 创建一个parallax节点用于储存各种精灵,然后移动parallax节点以展示“视差”效果
CCParallaxNode* voidNode = CCParallaxNode::create();
// background的移动速度为 0.4x, 0.5y
voidNode->addChild(background, -1, ccp(0.4f,0.5f), CCPointZero);
// bear的移动速度为 3.0x, 2.5y
voidNode->addChild(bear, 1, ccp(3.0f,2.5f), ccp(200,800) );

//移动 CCParallaxNode 产生视差效果
CCActionInterval* goUp = CCMoveBy::create(4, ccp(0,-500) );
CCActionInterval* goDown = goUp->reverse();
CCActionInterval* go = CCMoveBy::create(8, ccp(-1000,0) );
CCActionInterval* goBack = go->reverse();
CCFiniteTimeAction* seq = CCSequence::create(goUp, go, goDown, goBack, NULL);
voidNode->runAction( (CCRepeatForever::create((CCActionInterval*) seq) ));

addChild( voidNode );

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值