-------------------------------Action函数的使用-----------------------------------------------------------------------------------------------
auto role = Sprite::create("s1.png");
addChild(role);
role->setPosition(visibleSize / 2);
role->setScale(0.6);
//MoveTo函数 (所用时间,目的地的坐标 ps:用Vec2)MoveBy函数(所用时间,路程 ps:用Vec2(向量))
//role->runAction(MoveTo::create(3, Vec2(visibleSize.width, visibleSize.height / 2)));
/*
auto move1 = MoveTo::create(3, Vec2(visibleSize.width, visibleSize.height / 2));
auto move2 = MoveBy::create(3, Vec2(-visibleSize.width, -visibleSize.height / 2));
//runAction函数实现先后执行动作。 如下参数依次为(动作1,动作2,***,NULL)
role->runAction(Sequence::create(move1, move2, NULL));
*/
/*
auto move1 = MoveBy::create(3, Vec2(-visibleSize.width, -visibleSize.height / 2));
//动作的反转函数,实现如下,调用对象的reverse函数,实现相反的动作(ps:并不是所有的动作都能够反转)
auto move2 = move1->reverse();
role->runAction(Sequence::create(move1, move2, NULL));
*/
auto move = MoveTo::create(3, Vec2(visibleSize.width, visibleSize.height / 2));
auto scale = ScaleTo::create(3, 2);
//runAction实现同时执行多个动作 。 如下 ,参数依次为(动作1,动作2,***,NULL)
role->runAction(Spawn::create(move, scale, NULL));
-----------------------------------------------------------分割线---------------------------------------------------------------------
Action特效
PS:要使用action特效 需要用 NodeGrid::creat 来创建对象 然后用addchild(Sprite::creat());
//创建NodeGrid对象
auto role = NodeGrid::create();
//在对象里面加入精灵- -
role->addChild(Sprite::create("s1.png"));
//缩放2倍
role->setScale(2);
role->setPosition(visibleSize / 2);
addChild(role);
// 3D波浪抖动 参数依次为(时间,网格Size(横,纵),震动幅度,false)
//role->runAction(ShakyTiles3D::create(3, Size(50, 50), 3, false));
// 和上面的函数相同。只是不显示网格的抖动
//role->runAction(Shaky3D::create(3, Size(50, 50), 3, false));
// 爆炸特效。使对象爆裂成N*N个小方块 参数依次为(时间,网格Size(横,纵),3);ps:最后一个参数没搞懂- -
; //role->runAction(ShuffleTiles::create(1, Size(50, 50), 3));
/*
//将两个动作先后执行
auto shaky = ShakyTiles3D::create(2, Size(20, 20), 8, false);
auto shuffle = ShuffleTiles::create(0.8, Size(20, 20), 5);
role->runAction(Sequence::create(shaky,shuffle,NULL));
*/
// 碎片消失函数 参数依次为 参数依次为(时间,网格Size(横,纵)25);ps:最后一个参数没搞懂- -
//role->runAction(TurnOffTiles::create(2, Size(50, 50), 25));
//波浪函数 参数依次为(时间,网格Size(横,纵),抖动速度,抖动幅度)
role->runAction(Waves3D::create(5, Size(50, 50), 10, 50));
----------------------------------------------分割线------------------------------------------------------------------------------------------------------
场景切换及特效
auto background = Sprite::create("s3.jpg");
background->setPosition(visibleSize / 2);
background->setScale(6);
addChild(background);
调用scheduleOnce函数
scheduleOnce([visibleSize](float f){
auto newscene = Scene::create();
auto background2 = Sprite::create("s2.jpg");
background2->setPosition(visibleSize / 2);
background2->setScale(6);
newscene->addChild(background2);
//PS:以下特效的create 返回值是一个新场景 应该将放入replace里而不是 原来的场景
//auto effect = TransitionCrossFade::create(2, newscene);
//效果淡入淡出 参数为(时间,新场景)
//auto effect = TransitionZoomFlipAngular::create(2, newscene); //效果反转 参数为(时间,新场景)
//auto effect = TransitionPageTurn::create(2, newscene,true);
//效果翻页 参数为(时间,新场景,bool 决定上页或者下页)
//auto effect = TransitionProgressRadialCCW::create(2, newscene);
//效果顺时针 参数为(时间,新场景)
auto effect = TransitionSplitRows::create(2, newscene);
//效果左右切换 参数为(时间,新场景)
//切换场景的方法
Director::getInstance()->replaceScene(effect);
},1, "Test");
----------------------------------------------------------------------------------------------------------------------