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 ()创建 ...
随机推荐
- CentOS6.4挂载读写NTFS分区 (重要)
如今很多的linux衍生版本已经支持自动连接NTFS分区了,之前在一次安装的过程中,遇到 linux不能识别NTFS分区,解决方法如下文: ============================== ...
- 【转】Windows socket基础
转自:http://blog.csdn.net/ithzhang/article/details/8448655 Windows socket 基础 Windows socket是一套在Windows ...
- python WEB UI自动化在日期框中动态输入当前日期
要在日期框中输入当前日期,如下图 代码为 本想用最简单的方法,直接用sendkeys发送当前日期,如下: current_time=time.strftime('%Y-%m-%d',time.loca ...
- vim与终端的切换
在vim中按ctrl+z,可以stop vim退出到终端. 在终端工作完后,想要返回vim,则输入fg然后回车. ref: linux任务控制的几个技巧ctrl+z,fg,bg,jobs,kill
- ubuntu1304无法启动桌面系统的问题和解决
今天上班,从oracle官网下载个最新的virtual box,安装后重启电脑,进入桌面后竟然没有菜单栏和启动栏了(就是最上边的bar和左边的应用栏),而且所有启动的窗口都没有菜单栏,终端什么的也都没 ...
- 从Spring到SpringBoot构建WEB MVC核心配置详解
目录 理解Spring WEB MVC架构的演变 认识Spring WEB MVC 传统时代的Spring WEB MVC 新时代Spring WEB MVC SpringBoot简化WEB MVC开 ...
- xtrabackup安装部署(二)
在官网中,复制相关链接下载最新版本(建议使用当前发布版本前6个月左右的稳定版本) https://www.percona.com/downloads/XtraBackup/LATEST/ 1.下载和安 ...
- Image processing in Python
http://scikit-image.org/docs/dev/auto_examples/
- a new way of thinking about a problem
PHP Advanced and Object-Oriented Programming Larry Ullman The first thing that you must understand ...
- Thymeleaf模板引擎的初步使用
在springboot中,推荐使用的模板引擎是Thymeleaf模板引擎,它提供了完美的Spring MVC的支持.下面就简单的介绍一下Thymeleaf模板引擎的使用. 在controller层中, ...