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 ()创建 ...
 
随机推荐
- vuex报错: [vuex] Expects string as the type, but found undefined.
			
报错如图 检查了好久,发现 import * as types from '../mutation-types'const actions = { add({commit}){ commit(type ...
 - mysql语句性能分析案例
			
写法不一样而功能完全相同的两条 SQL 的在性能方面的差异.示例一需求:取出某个 group(假设 id 为 100)下的用户编号(id),用户昵称(nick_name).用户性别( sexualit ...
 - Windows Server 2012设置WinDbg Kernel Debugging Local
			
网上主要提到了以下两点: 1.cmd窗口输入bcdedit /debug on,重新启动计算机. 2.下载对应版本Windows符号文件,并添加环境变量_NT_SYMBOL_PATH. 其实根据环境不 ...
 - docker自动开启端口转发功能
			
yum -y install epel-release yum -y install docker-io service docker start docker pull haproxy # 此时自动 ...
 - 使用JSP的fmt标签实现国际化支持
			
使用JSP的fmt标签配置i18n国际化资源文件可以实现根据不同的地区和语言切换不同的显示. 具体做法如下: 1.在JSP页面中添加fmt标签的引用: <%@ taglib prefix=&qu ...
 - DragonBones龙骨骨骼中的自定义事件(另有声音、动画事件)
			
参考: DragonBones骨骼动画事件系统详解 一.在DragonBones中添加自定义事件帧 动画制作时 时间轴拉到最下面有一个事件层,添加一个事件帧 左边属性面板定义自定义事件 二.Egret ...
 - C# 二维码 ThoughtWorks.QRCode.dll
			
ThoughtWorks.QRCode.dll: 1.ThoughtWorks.QRCode.dll 2.通过 NuGet 添加 后台代码: using System; using System.Dr ...
 - Django之forms
			
Django forms 关于select和checkbox设置初始选中值 Django的forms和models一样很牛逼.他有两种功能,一是生成form表单,还有就是form表单的验证. 这里主要 ...
 - ubuntu下安装opencv3.1.0
			
ubuntu14.04安装opencv3.1 1.下载opencv3.1源码http://opencv.org/releases.html 2.安装opencv3 2.1安装opencv3的依赖 1 ...
 - HIT 2739 - The Chinese Postman Problem - [带权有向图上的中国邮路问题][最小费用最大流]
			
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2739 Time limit : 1 sec Memory limit : 64 M A Chinese ...