本节课视频教程地址:http://edu.csdn.net/course/detail/1342/20994?auto_start=1
什么是持续动作
持续动作又叫延时动作,它是有执行时间的一种动作也就是说执行该动作需要时间,并且在有限的时间内改变执行对象的一些属性。
持续动作的使用
//创建sprite auto _sprite = Sprite::create("logo.png"); addChild(_sprite); _sprite->setPosition(Vec2(0,320)); //创建一个moveTo动作 auto _moveTo = MoveTo::create(6.0,Vec2(960,320)); //执行动作 // _sprite->runAction(_moveTo); //缩放动作 auto _scallTo = ScaleTo::create(3.0,2.0); // _sprite->runAction(_scallTo); //选择动作 auto _rotateTo = RotateTo::create(3.0,60); //跳跃动作 auto _jumpTo = JumpTo::create(3.0,320),200,4); // _sprite->runAction(_jumpTo); //bezier动作 ccBezierConfig ccb; ccb.controlPoint_1 = Vec2(540,400); ccb.controlPoint_2 = Vec2(640,200); ccb.endPosition = Vec2(800,100); auto _bezierTo = BezierTo::create(3.0,ccb); // _sprite->runAction(_bezierTo); //创建FadeTo auto _fadeTo = FadeTo::create(3.0,0); // _sprite->runAction(_fadeTo); //创建TinyTo auto _tinyTo = TintTo::create(3.0,255,0); // _sprite->runAction(_tinyTo); //创建blink auto _blink = Blink::create(3.0,10); // _sprite->runAction(_blink);
通过代码可以看出,延时动作有很多种,并且创建的方法都不太一样,通过对各个动作的代码编写就大概能了解到各种参数的意义,这儿我希望同学们都去试着编写一下上面的代码并修改各个参数,这样就能加深我们队该延时动作的记忆。当然我的视频中都有详细讲解上面各个动作的参数含义,所以希望大家可以移步到我的视频教程中学习。
复合动作的使用
通常在开发中我们需要将各种动作组合起来再让节点执行,复合动作的作用就是将各种动作组合在一起。而且,复合动作本身也是动作。因此可以作为一个普通动作嵌入到其他动作中。
//创建squence动作 auto _sequence = Sequence::create(_moveTo,_scallTo,_rotateTo,NULL); // _sprite->runAction(_sequence); //创建spawn动作 auto _spwan = Spawn::create(_moveTo,NULL); // _sprite->runAction(_spwan); //创建rotateBy动作 auto _rotateBy = RotateBy::create(1.0,60); //创建一个repeat动作 auto _repeat = Repeat::create(_rotateBy,10); // _sprite->runAction(_repeat); //创建repeatForever auto _repeatForever = RepeatForever::create(_rotateBy); // _sprite->runAction(_repeatForever);
复合动作分以上四种,他们的作用也个不相同,sequence是顺序执行动作,spawn是同时执行动作,repeate是重复执行动作,repeatForever是永久的执行动作,他们的参数都是只需要动作,而repeat的还可以通过参数来控制执行多少次。
OK,本节课主要讲解了Cocos2d-x的延时动作,当然仅仅通过代码是看不到各个动作是如何运动的,所以,希望大家多去围观我视频教程,那里面有详细的代码讲解和演示,能给大家带来不一样的学习体验,好了,今天的课程就到这儿,谢谢大家。