cocos2d-x 2.x 图层特效Effect

CCSprite* sp = CCSprite::create("Default.png");

sp->setPosition(ccp(240, 160));

addChild(sp);



//常见的22种特效



//3D晃动的特效

// CCActionInterval* shaky3D = CCShaky3D::create(5, CCSize(10, 10), 15, false);

// sp->runAction(shaky3D);



//3D瓷砖晃动特效

// CCActionInterval* shakyTiles3D = CCShakyTiles3D::create(5, CCSize(10, 10), 5, false);

// sp->runAction(shakyTiles3D);



//波动特效

// CCActionInterval* waves = CCWaves::create(5, CCSize(10, 10), 10, 20, true, true);

// sp->runAction(waves);



//3D波动特效

// CCActionInterval* waves3D = CCWaves3D::create(5, CCSize(10, 10), 10, 20);

// sp->runAction(waves3D);



//3D瓷砖波动特效

// CCActionInterval* wavesTiles3D = CCWavesTiles3D::create(5, CCSize(10, 10), 10, 20);

// sp->runAction(wavesTiles3D);



//X轴 3D反转特效

// CCActionInterval* filpX = CCFlipX3D::create(5);

// sp->runAction(filpX);



//Y轴3D反转特效

// CCActionInterval* filpY = CCFlipY3D::create(5);

// sp->runAction(filpY);



//凸透镜特效

// CCActionInterval* lens = CCLens3D::create(2, CCSize(10, 10),CCPointMake(240, 160), 240);

// sp->runAction(lens);



//水波纹特效

// CCActionInterval* ripple = CCRipple3D::create(5, CCSize(10, 10), CCPointMake(240, 160), 240, 4, 160);

// sp->runAction(ripple);



//液体特效

// CCActionInterval* liquid = CCLiquid::create(5, CCSize(10, 10), 4, 20);

// sp->runAction(liquid);



//扭曲旋转特效

// CCActionInterval* twirl = CCTwirl::create(50, CCSize(10, 10), CCPointMake(240, 160), 2, 2.5);

// sp->runAction(twirl);



//破碎的3D瓷砖特效

// CCActionInterval* shatteredTiles = CCShatteredTiles3D::create(15, CCSize(10, 10), 50, true);

// sp->runAction(shatteredTiles);



//瓷砖洗牌特效

// CCActionInterval* shuffle = CCShuffleTiles::create(5, CCSize(50, 50), 50);

// sp->runAction(shuffle);



//部落格效果,从左下角到右上角

// CCActionInterval* fadeOutTRTiles = CCFadeOutTRTiles::create(5, CCSize(50, 50));

// sp->runAction(fadeOutTRTiles);



//部落格效果,从右上角到左下角

// CCActionInterval* fadeOutBLTiles = CCFadeOutBLTiles::create(5, CCSize(50, 50));

// sp->runAction(fadeOutBLTiles);



//折叠效果 从下到上

// CCActionInterval* fadeOutUpTiles = CCFadeOutUpTiles::create(5, CCSize(10, 10));

// sp->runAction(fadeOutUpTiles);



//折叠效果,从上到下

// CCActionInterval* fadeOutDownTiles = CCFadeOutDownTiles::create(4, CCSize(20, 50));

// sp->runAction(fadeOutDownTiles);



//方块消失特效

// CCActionInterval* turnOffFiels = CCTurnOffTiles::create(4, CCSize(50, 50));

// sp->runAction(turnOffFiels);



//跳动的方块特效

// CCActionInterval* jumpTiles = CCJumpTiles3D::create(5, CCSize(20, 20), 5, 20);

// sp->runAction(jumpTiles);



//分多行消失特效

// CCActionInterval* splitCols = CCSplitCols::create(5, 50);

// sp->runAction(splitCols);



//分多列消失特效

// CCActionInterval* splitRows = CCSplitRows::create(5, 50);

// sp->runAction(splitRows);



//3D翻页特效

CCActionInterval* pageTurn3D = CCPageTurn3D::create(4, CCSize(20, 20));

sp->runAction(pageTurn3D);



 



 



//这个是光晕效果的参数 

CCSpriteBatchNode *m_Batchnode=CCSpriteBatchNode::create("bullet.png");ccBlendFunc cb={GL_SRC_ALPHA,GL_ONE}; 

//将光晕效果加入

m_Batchnode->setBlendFunc(cb); 

//最后实例化一个 

CCSpriteBatchNode里this->addChild(m_Batchnode); 

//缓存中取出W1.png图片,这个图片是在plist文件中所在的<key>标签里面的 

CCSpriteCCSprite *bullet=CCSprite::createWithSpriteFrameName("W1.png"); 

//记得不是用this->addChild而是用m_Batchnode->addChild(bullet); 

//这样就能有光晕效果啦 主要是理解CCSpriteBatchNode 

bullet->setPosition(ccp(x,y));

m_Batchnode->addChild(bullet);



 



//1. 不断旋转

CCRotateBy* rotate = CCRotateBy::actionWithDuration(1, 360);

CCRepeatForever* repeatRotate = CCRepeatForever::actionWithAction(rotate);



//2. 上升消失

CCMoveBy* move = CCMoveBy::actionWithDuration(2, ccp(0,200));

CCFadeOut* fadeOut = CCFadeOut::actionWithDuration(2);

CCFiniteTimeAction* fadeOutAct = CCSpawn::actions(move,fadeOut,NULL);



//3.贝赛而曲线

ccBezierConfig bezier;

bezier.controlPoint_1 = ccp(100,200);

bezier.controlPoint_2 = ccp(200, -100);

bezier.endPosition = ccp(400, 100);

CCBezierBy* bezierBy = CCBezierBy::actionWithDuration(5.0, bezier);



//4. 变色

CCTintTo* tint1 = CCTintTo::actionWithDuration(1.5, 255, 0, 0);

CCTintTo* tint2 = CCTintTo::actionWithDuration(1.5, 0, 255, 255);

CCTintTo* tint3 = CCTintTo::actionWithDuration(1.5, 0, 255, 0);

CCFiniteTimeAction* tintActions = CCSequence::actions(tint1,tint2,tint3,NULL);

CCRepeatForever* repeatTint = CCRepeatForever::actionWithAction((CCActionInterval*)tintActions);



//5.闪烁

CCBlink* blink = CCBlink::actionWithDuration(5, 25);



//6.动作(动画)结束后,调用某函数

CCFadeOut* fadeOut = CCFadeOut::actionWithDuration(0.8);

CCCallFunc* endCall = CCCallFunc::actionWithTarget(starSprite, callfunc_selector(FlashingMeteors::removeFromParentAndCleanup));

CCFiniteTimeAction* acts = CCSequence::actions(fadeOut,endCall, NULL);

starSprite->runAction(acts);

 

你可能感兴趣的:(cocos2d-x)