Cocos2d-X中的CCAction
来源:互联网 发布:彩票的算法 编辑:程序博客网 时间:2024/05/09 00:44
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, ccp(0,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, ccp(0,0)); //立即性动作 CCPlace* place = CCPlace::create(ccp(100,100)); //动作的并发封装 CCSpawn* spawn = CCSpawn::create(moveTo, place, 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, ccp(100, 100));CCJumpBy* jumpBy = CCJumpBy::create(2, ccp(-100, -100), 80, 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;}
执行结果:
0 0
- Cocos2d-X中的CCAction
- Cocos2d-X中的CCAction
- cocos2d-x CCAction:动作
- Cocos2d-x动作CCAction
- Cocos2d-x动作CCAction
- Cocos2d-x动作CCAction
- cocos2d-x CCAction scrollMap
- Cocos2d-x 之CCAction
- Cocos2d-x CCAction介绍
- cocos2d-x之CCAction
- Cocos2d-x动作CCAction
- Cocos2d-x动作CCAction
- Cocos2d-x动作CCAction
- Cocos2d-x动作CCAction
- 【Cocos2d-x】CCAction
- [cocos2d-x] --- CCAction类详解
- cocos2d-x学习之CCAction
- cocos2d-x CCaction的控制
- 基于Openstack的虚拟机热迁移
- jquery如何选择带有多个class的元素
- POJ 3256 Cow Picnic 搜索
- UVA - 208 Firetruck
- android 按钮按下时改变字体颜色
- Cocos2d-X中的CCAction
- Android --- 字符串\n的换行问题
- MYSQL——Split字符串并且插入值
- Maven的安装与配置
- 数据恢复
- 未来的苹果和谷歌到底哪家强?
- 这世界没人真正意义上的关心你,只有自己关心自己
- 生产者消费者算法
- Android Studio 快捷键