博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
COCOS学习笔记--即时动作ActionInstant
阅读量:6290 次
发布时间:2019-06-22

本文共 1461 字,大约阅读时间需要 4 分钟。

Cocos引擎中的动作类的关系图例如以下:

 

能够看出,Action是继承自Ref类的,之前我的博客中也有讲过,Ref类是cocos2dx全部类的基类。动作类(Action)是全部动作的基类。它通过create()方法创建的一个对象代表一个动作

动作类(Action)作为基类。实际上是一个接口,动作类的大多数实现类都派生于有限时间动作类(FiniteTimeAction)。

在实际开发中我们通经常使用到两类动作:即时动作(ActionInstant)和持续动作(ActionInterval),它们均继承于有限时间动作类。

注意,动作作用于Node,因此每一个create出来的动作对象都须要由Node对象运行。

什么是即时动作?

即时动作(ActionInstant)指可以立马完毕的动作,这类动作是在下一帧立马完毕的动作。也就是说即时动作是没有运行时间的,你一旦runAction()这个动作就会被立即运行。如设定位置、设定缩放等属性。把它们包装成动作后,可以与其它动作类组合为复杂动作。

即时动作ActionInstant类的子类包含:

 

接下来就举几个使用即时动作的样例:

例1:比方要运行Place动作,Place是通过动作来改变node的位置,事实上和setPosition()效果一样:

//创建一个place动作auto _placeAction = Place::create(Vec2(100,100));sprite->runAction(_placeAction);

例2:再比方showhide。与setVisible()效果一样:

//创建hide动作auto _hideAction = Hide::create();sprite->runAction(_hideAction);//创建show动作auto _showAction = Show::create();sprite->runAction(_showAction);

例3:这里要着重说一个动作:CallFunc。这个动作须要绑定一个回调函数,CallFunc绑定回调函数有2种方法:

方法1.绑定Lamada表达式:

//创建CallFunc动作auto _callFuncAction = CallFunc::create([](){    log("callfunc run finished");});sprite->runAction(_callFuncAction);

方法2.绑定一个函数CCcallback

1).首先在头文件声明callfunc动作的回调函数callfuncCallback

void callfuncCallback();

2).然后在.cpp中实现callfunc动作的回调函数callfuncCallback

void HelloWorld::callfuncCallback(){    log("callfuncCallback!");}

3).最后将CCcallback函数绑定callfunc动作:

auto _callFuncAction = CallFunc::create(CC_CALLBACK_0(HelloWorld::callfuncCallback,this));sprite->runAction(_callFuncAction);

其它动作的也都是通过create()创建,之后一个node运行其runAction()方法,把动作作为參数传入运行。

 

 

以上。

 

 

你可能感兴趣的文章
Lancel sac négociation avec insistance que nous pourrions réaliser de quelle route
查看>>
空白表单提交到后台的数据类型总结(java)
查看>>
Vue问题区
查看>>
[原]Unity3D深入浅出 - Shader基础开发
查看>>
netty之ByteBuf详解
查看>>
数据泵导出oracle 10g数据库
查看>>
LYSE-模块
查看>>
Date Picker和UITool Bar控件简单介绍
查看>>
sql server 实现多表连接查询
查看>>
HTTP 1.1与HTTP 1.0的比较
查看>>
如何在命令行脚本中启动带参数的Windows服务
查看>>
abstract vs interface
查看>>
nodejs笔记1 ----关于express不是本地命令
查看>>
python debug
查看>>
docker-machine 远程安装docker
查看>>
最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
查看>>
3.2 进程间通信之fifo
查看>>
WEB 开发前传——js笔记
查看>>
C++多线程编程入门(转)
查看>>
C# to IL 6 Reference and Value Types(引用类型和值类型)
查看>>