cocos代码研究(7)即时动作子类学习笔记
理论部分
即时动作是会立即被执行的动作。他们没有持续时间动作(ActionInterval)的持续时间属性。
继承自 FiniteTimeAction。被 CallFunc, FlipX, FlipY, Hide, Place, RemoveSelf, ReuseGrid, Show, StopGrid , 以及 ToggleVisibility 继承。
- FlipX,FlipX可以立即水平翻转一个精灵。
- FlipY,FlipY可以立即垂直翻转一个精灵。
- Hide,隐藏动作用来立即隐藏一个节点。
- Show,显示动作用来立即显示一个节点
- Place,Place动作可以将节点放置在特定位置。
- RemoveSelf,RemoveSelf动作用来删除执行动作的节点。
- ReuseGrid,ReuseGrid重新使用网格动作。
- ReuseGrid,StopGrid结束当前网格动作,将其移除。
- ToggleVisibility,ToggleVisibility动作用来切换一个节点的可见性。
- CallFunc调用一个回调函数。
代码部分
CallFunc类API
static CallFunc* create (const std::function< void()> & func) //func 需要被执行的回调函数。
用一个回调函数创建CallFunc动作,回调函数的类型是std::function<void()>。 这是创建回调函数的首选方法。 这个API绑定在js或lua中,输入参数会被改变。 lua: local create(local funcID)。
static CallFunc* create (Ref * target, SEL_CallFunc selector)
用下面的函数类型创建CallFunc动作 typedef void (Ref::*SEL_CallFunc)()。
virtual void execute ()
执行回调。
Ref * getTargetCallback ()
获取回调函数的执行主体。
void setTargetCallback (Ref *sel)
设置回调函数的执行主体。
CallFuncN类
CallFuncN类继承自CallFunc,使用节点作为第一个参数调用回调函数的CallFuncN动作,N代表节点。
static CallFuncN * create (const std::function< void(Node *)> &func)
用一个回调函数创建CallFunc动作,回调函数的类型是std::function<void()>。 这是创建回调的首选方法。
实例:
CallFuncN::create(CC_CALLBACK_1(CallFuncNTest1::onCallBackFunc, this))
static CallFuncN * create (Ref *target, SEL_CallFuncN selector)
用下面的方法创建CallFuncN动作。 typedef void (Ref::SEL_CallFuncN)(Node)。
实例:
auto action = CallFuncN::create(this, SEL_CallFuncN(CallFuncNTest::onCallBackFunc))
FlipX类API
static FlipX* create(bool x) //x 如果为true则水平翻转精灵,值为false时则恢复精灵原始状态。
实例:
auto action = FlipX::create(true);
FlipY类API
static FlipY * create(bool y) //y 如果为true则垂直翻转精灵,值为false时则恢复精灵原始状态。
实例:
auto action = FlipY::create(true)
Hide类API
static Hide* create()
实例:
auto hide = Hide::create();
Show类API
static Show* create()
实例:
auto show = Show::create();
Place类API
static Place * create (const Vec2 &pos) //pos 位置坐标
实例:
auto place = Place::create(Vec2(,));
ToggleVisibility类API
static ToggleVisibility* create() //
实例:
auto move1 = MoveBy::create(, Vec2(,));
auto move2 = MoveBy::create(, Vec2(,));
auto tog1 = ToggleVisibility::create();
auto tog2 = ToggleVisibility::create();
auto seq = Sequence::create( move1, tog1, move2, tog2, move1->reverse(), nullptr);
auto action = Repeat::create(Sequence::create( seq, seq->reverse(), nullptr), );
RemoveSelf类API
static RemoveSelf * create (bool isNeedCleanUp=true) //isNeedCleanUp 是否需要清理,默认值是true。
实例:
auto action = Sequence::create(
MoveBy::create( , Vec2(,)),
RotateBy::create( , ),
ScaleTo::create(,0.1f),
RemoveSelf::create(),
nullptr); _grossini->runAction(action);
cocos代码研究(7)即时动作子类学习笔记的更多相关文章
- cocos代码研究(5)Action学习笔记
理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...
- cocos代码研究(1)Node学习笔记
理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...
- cocos代码研究(2)Label学习笔记
理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...
- cocos代码研究(1)sprite学习笔记
各种方法创建Sprite和Animate //图片创建法 参数一:图片资源路径 参数二:Rect选区 auto sprite = Sprite::create(, )); addChild(sprit ...
- cocos代码研究(2)Layer学习笔记
auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...
- cocos代码研究(8)持续动作子类学习笔记
理论部分 时间间隔动作(ActionInterval)是一个在一段时间内执行的动作. 它有一个开始时间和完成时间.完成时间等于起始时间加上持续时间. ActionInterval的子类与位置有关的动作 ...
- cocos代码研究(6)有限时间动作类(FiniteTimeAction)学习笔记
理论部分 有限时间动作类继承自Action类,被 ActionInstant(即时动作) , 以及 ActionInterval(持续动作) 继承. 即时动作是会立即被执行的动作,被 CallFunc ...
- cocos代码研究(10)ActionEase子类学习笔记
理论部分 缓动动作的基类,继承自 ActionInterval类.ActionEase本身是一个抽象的概念父类,开发者最好不要在代码中直接创建它的对象,因为它没有具体的执行效果,这一类的子类速度变化大 ...
- cocos代码研究(14)Widget子类Button学习笔记
理论基础 表示一个按钮组件. 按钮可以被按下,或者点击, 并且在按下或者点击之后,可以由用户指定一个动作来执行,继承自 Widget. 代码部分 static Button * create ()创建 ...
随机推荐
- Unity3D 加密 Assembly-CSharp.dll (Android平台) 防止反编译【转】
转自 http://blog.csdn.net/u013108312/article/details/54234439
- Docker关联使用的一些工具:Clip名字服务(转载)
Clip名字服务 Clip(http://blog.puppeter.com/read.php?7)是一个名字服务C/S架构,它将传统的IP管理维度替换为名字服务即有意义可记忆的String.Clip ...
- 常用AT指令集 (转)
常 用 AT 命 令 手 册 .常用操作 1.1 AT 命令解释:检测 Module 与串口是否连通,能否接收 AT 命令: 命令格式:AT<CR> 命令返回:OK (与串口通信正常) ( ...
- [励志英语片段]practicing deliberately
最近看到一篇鸡汤文,觉得措词造句皆为吾辈所能接受,以后可以用作写作或口语素材~ 文章中心思想:同样是训练100小时,结果可以大不一样~所以不要用时间来欺骗自己. Consider the activi ...
- wpgcms---单片页数据渲染
单片页数据渲染,使用Twig的标签语法: <h1> {{ contentInfo.title }} </h1> {% autoescape false %} {{ conten ...
- ubuntu16.04下安装pangolin
安装教程,具体可以参考github上pangolin的安装文档 https://github.com/stevenlovegrove/Pangolin 首先要安装pangolin的各种依赖项 Glew ...
- opencv学习笔记之cvSobel 函数解析
首先,我们来开一下计算机是如何检测边缘的.以灰度图像为例,它的理论基础是这样的,如果出现一个边缘,那么图像的灰度就会有一定的变化,为了方便假设由黑渐变为白代表一个边界,那么对其灰度分析,在边缘的灰度函 ...
- HDU 1789 - Doing Homework again - [贪心+优先队列]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1789 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...
- proxychains
有时候需要连接某机器,但是直接连被屏蔽了,虽然可以用代理来搞定一些应用程序,但是很多程序不支持代理,或者只支持某些类型的代理,这时候就可以试一试 proxychains 这个软件了. 最近用各种脚本下 ...
- Python开发【笔记】:关闭线程的方法
1.通过API进行线程关闭 import threading import time import inspect import ctypes def _async_raise(tid, exctyp ...