cocos2d-x 详解之 CCAction(动作)
关于动作部分,总的来说使用起来比较简单,创建一个动作,然后让可渲染节点如精灵去执行这个动作即可。cocos2dx提供了很多类型的动作,使用起来也很方便。本节重点介绍动作CCAction的子类之一时间动作:CCFiniteTimeAction:
时间动作又分:瞬时动作(CCActionInstant)和持续动作(CCActionInterval)
瞬时动作:指动作立马执行,不需要持续时间,如位置的瞬移。
持续动作:需要给动作指定持续时间,如从A移动到B,设定3秒移动时长。
瞬时动作
CCSprite* pSprite = CCSprite::create("HelloWorld.png");//创建一个精灵
pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
this->addChild(pSprite, 0);
//通常用父类CCActionInstant来接收不同的子类对象实现多态
CCActionInstant* it1 = CCFlipX::create(true);//创建x轴翻转动作
CCActionInstant* it2 = CCFlipY::create(true);//创建y轴翻转动作
pSprite->runAction(it2);//执行动作it2 CCActionInstant* it3 = CCPlace::create(ccp(200,200));//放置动作,实现位置瞬移
pSprite->runAction(it3); CCActionInstant* it4 = CCHide::create();//隐藏动作,等同于设置setVisible(false)
CCActionInstant* it5 = CCShow::create();//显示动作,等同于设置setVisible(true)
pSprite->runAction(it4); CCActionInstant* it6 = CCToggleVisibility::create();//可见开关动作,即原来是隐藏的话改为显示,显示改为隐藏
pSprite->runAction(it6); //重要的函数回调动作CCCallFunc,它有三个子类,CCCallFuncN、CCCallFuncND、CCCallFuncO,它们之间只是回调函数的参数不同
CCActionInstant* it7 = CCCallFunc::create(this,callfunc_selector(MyClass::callBack1));//callback1自定义的函数,用来处理动作执行到此处该做的事,无参数
CCActionInstant* it8 = CCCallFuncN::create(this,callfunc_selector(MyClass::callBack2));//callback2带参数(CCNode* pSender),参数是执行此动作CCNode对象
CCActionInstant* it9 = CCCallFuncND::create(this,callfunc_selector(MyClass::callBack3));//callback3带参数(CCNode* pSender,void* data),data是关联数据
CCActionInstant* it10 = CCCallFuncO::create(this,callfunc_selector(MyClass::callBack4));//callback4带参数(CCObject* obj),任何对象都可调用此动作
持续动作
持续动作时动作系统中最为复杂的动作分类,包含了大量的动作子类。持续动作类中的每一种从类名上看通常都分为两中,“To”类型和“By”类型,to类型就是一次性指定从哪个状态到哪个状态,并指定动作持续时间,如5秒内从(0,0)移动到(200,200);而by类型是指定每一帧状态的该变量,如每一帧移动(-10,10):x轴反方向移动10,y轴正方向移动10。
动作种类着实很多,而且使用起来也较为相似,所以直接给一个链接做参考,里面列出了所有动作的使用,包括特效动作:cocos2dx常见的46中+22中动作详解
cocos2d-x 详解之 CCAction(动作)的更多相关文章
- cocos2dx常见的46中+22中动作详解
cocos2dx常见的46中+22中动作详解 分类: iOS2013-10-16 00:44 1429人阅读 评论(0) 收藏 举报 bool HelloWorld::init(){ ///// ...
- JS函数动作分层结构详解及Document.getElementById 释义 js及cs数据类型区别 事件 函数 变量 script标签 var function
html +css 静态页面 js 动态 交互 原理: js就是修改样式, 比如弹出一个对话框. 弹出的过程就是这个框由disable 变成display:enable. 又或者当鼠标指向 ...
- FLASH动作脚本详解
FLASH动作脚本详解 一.FLASH脚本基础入门讲解 二.按钮AS的编写 三.影片剪辑的AS编写 四.动态文本框 五.影片剪辑的拖拽 六.流程控制与循环语句 七.绘图及颜色的AS的编写 八.声音 A ...
- Cocos2d-x 3.X手游开发实例详解
Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...
- iOS开发——UI篇OC篇&SpriteKit详解
SpriteKit详解 SpriteKit,iOS/Mac游戏制作的新纪元 这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览.本文仅作为个人记录使用,也欢迎在许可协议范围内转载或 ...
- Android 网络框架之Retrofit2使用详解及从源码中解析原理
就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题: 1 . 什么是Retrofit? Retrofit是针对于Android/Java的.基于okHttp的.一种轻量级且安全 ...
- 「视频直播技术详解」系列之七:直播云 SDK 性能测试模型
关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: ...
- JavaScript事件详解-jQuery的事件实现(三)
正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...
- JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】
正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...
随机推荐
- JTable单元格放自定义控件(一)-如何在JTable的单元格放JPanel
原文链接:http://blog.sina.com.cn/s/blog_7f1c8c710101hdpf.html 最近自己尝试着模仿着实现一款非常有名的进销库存管理系统(智慧记)里面的一个功能.功能 ...
- C#五层架构
UI Business Logic Layer Business Rule Layer Data Access Layer Data Definition Layer 简单工厂模式 simple fa ...
- 龙芯将两款 CPU 核开源,这意味着什么?
10月21日,教育部计算机类教学指导委员会.中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和G ...
- AspectJ 出现错误::0 can't find referenced pointcut 的解决之道
使用AspectJ注解开发AOP应用时,会遇到以下问题: ::0 can't find referenced pointcut 这个问题,与你所在的开发环境有关,如下表 jdk version spr ...
- Ios tab Bar 使用方法
http://blog.sina.com.cn/s/blog_63578f140100w56m.html UITabBar* tabBar = [[UITabBar alloc] initWithFr ...
- C#使用sharppcap实现网络抓包-----2
虽然网上已经有了SharpSniffer 这一个SharpSniffer还是原创的无他,唯为学习工程文件下载:SharpSniffer.rar 1.创建套接字2.绑定到本机3.设置IOControl4 ...
- nand flash 扇区的管理以及初始化
(1)首先需要了解NAND FLASH的结构.如图: 以镁光MT29F4G08BxB Nand Flash为例,这款Flash(如上图)以4个扇区(sector)组成1个页(page),64个页(pa ...
- 严重: Catalina.stop: java.net.ConnectException: Connection refused: connect
原因: 1.连接被拒绝,关闭的时候报错.是不是已经关闭了,你又关闭,他当然找不到了. 2.连接被拒绝有可能是服务端连接数到达最高了 3.服务器拒绝连接,ip地址是否写对,端口号正确与否,网络是否通畅, ...
- svn url does not contain valid patch
想把项目上传到svn上,由于误点击了apply patch.所以出现下面的错误. 正确做法是在项目上右击找到Team----share Project 如图: 点击share project后出现如图 ...
- uva1639 Candy
组合数,对数. 这道题要用到20w的组合数,如果直接相乘的话,会丢失很多精度,所以用去对数的方式实现. 注意指数,因为取完一次后,还要再取一次才能发现取完,所以是(n+1)次方. double 会爆掉 ...