Cocos2d-x 之动作 Action
2017-07-13 18:58
211 查看
瞬时动作 VS 持续动作
Cocos2d中的动作主要分为两大类,瞬时动作Instant和持续动作Interval。auto sprite=Sprite::createWithTexture(img4); sprite->setPosition(visibleSize/2); sprite->setScale(3.5); this->addChild(sprite); auto sprite2 = Sprite::createWithTexture(img2); sprite2->setPosition(0, 0); sprite2->setOpacity(1); this->addChild(sprite2); auto sprite3 = Sprite::createWithTexture(img3); sprite3->setPosition(200, 0); this->addChild(sprite3); auto sprite4 = Sprite::createWithTexture(img4); sprite4->setPosition(250, 100); this->addChild(sprite4); auto sprite5 = Sprite::createWithTexture(img5); sprite5->setPosition(390, 200); this->addChild(sprite5); //移动、旋转、缩放 //顺序动作、合并动作 sprite->runAction(Sequence::create(MoveTo::create(0.5f, Vec2(50, 50)), ScaleTo::create(0.5f, 1.0f), RotateBy::create(0.8f, Vec3(0, 0, 360)), CallFunc::create([sprite]() { sprite->runAction(Spawn::create(MoveBy::create(1.0f, Vec2(100, 100)), ScaleBy::create(1.0f, 2.0f), RotateBy::create(1.0f, Vec3(0, 0, 180)),NULL)); }),NULL)); //出现、重复动作 auto move2=MoveBy::create(4,Vec2(100,100)); auto fadeIn=FadeIn::create(4.0f); auto rotate=RotateBy::create(4.0f,360); auto spawn=Spawn::create(move2,fadeIn,NULL); sprite2->runAction(Repeat::create(Sequence::create(spawn,rotate,rotate->reverse(),spawn->reverse(),NULL),3)); //闪烁、不断重复 auto jump=JumpBy::create(3,Vec2(0,0),100,1); auto shrink=Blink::create(3,8); sprite3->runAction(RepeatForever::create(Spawn::create(jump,shrink,NULL))); //瞬时动作,不能组合 sprite4->runAction(FlipX::create(true)); sprite4->runAction(FlipY::create(true)); //蒙版、变形、回调 sprite5->runAction(Sequence::create(TintBy::create(3,100,-100,30),TintTo::create(3,20,200,255),SkewBy::create(1,10,20),CallFunc::create([](){ CCLOG("play complete"); }),NULL));
跟场景一样,cocos2d也定义了一些动作的特效,这些特效是基于网格实现,我们只需把精灵放入网格中,再将网格加到场景中。然后就可以给这个网格使用动作特效了。
auto role=NodeGrid::create(); role->addChild(Sprite::create("girl.png")); this->addChild(role); role->setPosition(visibleSize/2); role->setScale(1.5); auto shaky=ShakyTiles3D::create(3,Size(30,30),5,false); auto shuffle=ShuffleTiles::create(1,Size(30,30),3); auto turnoff=TurnOffTiles::create(0.5,Size(30,30),10); auto wave1=Waves3D::create(2,Size(30,30),5,40); auto wave2=Waves3D::create(2,Size(30,30),0,0); //role->runAction(Shaky3D::create(3,Size(20,20),5,false));//震动,不显示网格 //role->runAction(Sequence::create(shaky,shaky->reverse(),NULL));//震动,显示网格 //role->runAction(ShatteredTiles3D::create(1,Size(30,30),5,false));//碎片结果 //role->runAction(ShuffleTiles::create(0.1f,Size(180,180),3));//爆炸 //role->runAction(TurnOffTiles::create(2,Size(30,30),10));//碎片消失 //role->runAction(Waves3D::create(2,Size(30,30),5,40));//波浪 role->runAction(Sequence::create(shaky,shuffle,turnoff,NULL)); //role->runAction(Sequence::create(wave1,wave2,NULL));
相关文章推荐
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-html5 简单的动作函数 Action
- 【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)做抛物线动作并让CCSprite同时播放两个Action动作!
- Cocos2d-x 3.1.1 Lua示例 ActionManagerTest(动作管理)
- Cocos2d-x v3.x官方文档]动作 (Action)
- 【Cocos2d-x Lua笔记七】Action动作
- Cocos2d-x 3.2 Lua示例 ActionTest(动作测试)
- 【Cocos2D-X 游戏引擎】初窥门径(5)CCAction:动作
- cocos2d-x学习(二):动作Action(延时类动作)
- cocos2d-x中动作类Action的2个常犯…
- 【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-基本动作介绍
- cocos2d-x 基本概念 动作 Action
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- cocos2d开发学习三:节点的动作(Action)介绍
- Cocos2d-x --Action (动作)
- cocos2d-x中动作类Action的2个常犯…
- Cocos2d-x 3.2 Lua示例 ActionTest(动作测试)
- 【Cocos2d-html5游戏引擎学习笔记(9)】Action系统动作
- cocos2d-x-3.3-013-动作Action原理
- cocos2d-x初学笔记07:角色动作Action