Cocos2d-X中的CCAction

Cocos2d-X中的CCAction,第1张

概述CCAction用于创建各种动作 CCAction类及其子类的结构图: 程序实例1:创建一个延时性动作 #include "Action.h"CCScene* Action::scene(){ CCScene* scene = CCScene::create(); Action* layer = Action::create(); scene->addChild(

CCAction用于创建各种动作


CCAction类及其子类的结构图:

程序实例1:创建一个延时性动作

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();    //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    //设置精灵的位置(精灵运动的起始位置)    sprite->setposition(ccp(480,320));    addChild(sprite);    //延迟性动作    //第一个参数:精灵运动所花的时间    //第二个参数:精灵运动的终止位置    CCAction* moveto = CCMoveto::create(10,ccp(0,0));    sprite->runAction(moveto);    return true;}

执行结果:


程序实例2:创建一个立即性动作

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();    //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    //设置精灵的位置(精灵运动的起始位置)    sprite->setposition(ccp(480,320));    addChild(sprite);     //立即性动作    CCPlace* place = CCPlace::create(ccp(0,0));    sprite->runAction(place);    return true;}

程序实例3:动作的顺序封装(先执行延迟性动作,后执行立即性动作)

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();    //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    //设置精灵的位置(精灵运动的起始位置)    sprite->setposition(ccp(480,320));    addChild(sprite);        //延迟性动作(持续一段时间的动作)    //第一个参数:精灵运动所花的时间    //第二个参数:精灵运动的终止位置    CCMoveto* moveto = CCMoveto::create(2,0));    //立即性动作    CCPlace* place = CCPlace::create(ccp(100,100));    //动作的顺序封装    CCSequence* seq = CCSequence::create(moveto,place,NulL);    sprite->runAction(seq);    return true;}

执行结果:



程序实例4:动作的并发封装(延迟性动作和立即性动作一起执行)

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();    //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    //设置精灵的位置(精灵运动的起始位置)    sprite->setposition(ccp(100,100));    addChild(sprite);        //延迟性动作(持续一段时间的动作)    //第一个参数:精灵运动所花的时间    //第二个参数:精灵运动的终止位置    CCMoveto* moveto = CCMoveto::create(10,100));    //动作的并发封装    CCSpawn* spawn = CCSpawn::create(moveto,NulL);    sprite->runAction(spawn);    return true;}


执行结果:



程序实例5:动作反转

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();    //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    //设置精灵的位置(精灵运动的起始位置)    sprite->setposition(ccp(200,200));    addChild(sprite);        //动作反转(从ccp(100,100)-ccp(200,200)-ccp(100,100))    CCMoveBy* moveBy = CCMoveBy::create(10,ccp(100,100));        CCAction* moveBack = moveBy->reverse();        CCAction* action = CCSequence::create(moveBy,moveBack,NulL);        sprite->runAction(action);    return true;}

执行结果:


程序实例6:精灵跳跃

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();    //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    //设置精灵的位置(精灵运动的起始位置)    sprite->setposition(ccp(100,100));    addChild(sprite);        //精灵跳跃    //第一个参数:完成跳跃所花的时间    //第一个参数:跳跃到的位置    //第一个参数:跳跃的高度    //第一个参数:跳跃的次数    CCJumpBy* jumpBy = CCJumpBy::create(10,ccp(-100,-100),80,5);    sprite->runAction(jumpBy);    return true;}


执行结果:



程序实例7:精灵旋转

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();    //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    //设置精灵的位置(精灵运动的起始位置)    sprite->setposition(ccp(100,100));    addChild(sprite);        //精灵旋转   CCRotateBy* rotateBy = CCRotateBy::create(10,360);   sprite->runAction(rotateBy);    return true;}


执行结果:



程序8:sequence的动作反转

#include "Action.h"CCScene* Action::scene(){    CCScene* scene = CCScene::create();    Action* layer = Action::create();    scene->addChild(layer);    return scene;}bool Action::init(){    cclayer::init();        //创建精灵    CCSprite* sprite = CCSprite::create("Closenormal.png");    sprite->setposition(ccp(200,200));	addChild(sprite);		//sequence的动作反转	CCMoveBy* moveBy = CCMoveBy::create(2,100));	CCJumpBy* jumpBy = CCJumpBy::create(2,5);	CCRotateBy* rotateBy = CCRotateBy::create(2,180);	CCSequence* seq = CCSequence::create(moveBy,jumpBy,rotateBy,NulL);	CCSequence* seq2 = CCSequence::create(seq,seq->reverse(),NulL);	//动作执行无限次	sprite->runAction(CCRepeatForever::create(seq2));	    return true;}

执行结果:

   总结

以上是内存溢出为你收集整理的Cocos2d-X中的CCAction全部内容,希望文章能够帮你解决Cocos2d-X中的CCAction所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1005249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存