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 ()创建 ...
随机推荐
- laravel部署常用命令
php composer install composer dump-autoload php artisan key:generate .env 及 config/database.php里的数据库 ...
- css笔记——文本样式
聊聊text-decoration.text-indent.text-transform.letter-spacing.word-spacing.vertical-align.下面是一些常用设置文本样 ...
- [原]F5负载均衡激活license
一.pc用网线连接上f5的管理口,开机,ping 192.168.1.245 二.用浏览器登录:https://192.168.1.245 用户名 admin 密码 admin
- 3-1 vue-resource基础介绍
1.静态引用 <script src="https://cdn.bootcss.com/vue-resource/1.3.4/vue-resource.js">< ...
- 2018牛客网暑期ACM多校训练营(第三场) H - Diff-prime Pairs - [欧拉筛法求素数]
题目链接:https://www.nowcoder.com/acm/contest/141/H 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K ...
- POJ 1815 - Friendship - [拆点最大流求最小点割集][暴力枚举求升序割点] - [Dinic算法模板 - 邻接矩阵型]
妖怪题目,做到现在:2017/8/19 - 1:41…… 不过想想还是值得的,至少邻接矩阵型的Dinic算法模板get√ 题目链接:http://poj.org/problem?id=1815 Tim ...
- CodeForces - 950D A Leapfrog in the Array 玄学题
题意:n个数1~n(n<=1e18)依次放在一个数组中,第i个数位置为2i-1,其它地方是空的.现在重复以下操作:将最右边的数放到离其左边最近的空的位置,直到所有数移到前一半的位置中.有q< ...
- ArcGIS earth 1.0 beta体验报告——给我一个按钮我将转动整个地球
随着Esri研发中心的ArcGIS earth 1.0 beta版本的全新发布,声势浩大,很多人为之好奇静待观摩其阵容.抽出五分钟体验,良心用户,必得出炉一份体验报告了. -------------- ...
- MyBatis 强大之处 多环境 多数据源 ResultMap 的设计思想是 缓存算法 跨数据库 spring boot rest api mybaits limit 传参
总结: 1.mybaits配置工2方面: i行为配置,如数据源的实现是否利用池pool的概念(POOLED – This implementation of DataSource pools JDBC ...
- xpath教程 2 - lxml库
xpath教程 2 - lxml库 这些就是XPath的语法内容,在运用到Python抓取时要先转换为xml. lxml库 lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HT ...