cocos2dx中node的pause函数(lua)
time:2015/05/14
void Node ::pause (){_scheduler-> pauseTarget(this );_actionManager-> pauseTarget(this );_eventDispatcher-> pauseEventListenersForTarget(this );}
分析:
for k, v in pairs(layer:getChildren()) dov:pause()end
2. Lua的pause函数为什么没有起作用?
--test page@2015/04/15 : pauselocal moveBy = cc.MoveBy:create(2, cc.p(100, 0))local actionMove = cc.Sequence:create(moveBy, moveBy:reverse());layer:runAction(cc.RepeatForever:create(actionMove))local btnPause = cc.MenuItemImage:create("Images/pauseBtn.png","Images/pauseBtn.png");btnPause:setScale(3)local bPaused = false;local call = function(sender)if not bPaused thenbPaused = true;layer:pause();print("pause ... ")elsebPaused = false;layer:resume();print("resume ... ")endend-- btnPause:addTouchEventListener(call) btnPause:registerScriptTapHandler(call)local menu = cc.Menu:create()menu:setPosition(cc.p(0, 0))menu:addChild(btnPause)layer:addChild(menu)--schedule-- local fnActionPause = function(dt)layer.fnActionPause = function(dt)print("fnActionPause ... ", dt)local sprite = cc.Sprite:create("Images/CyanTriangle.png")local act = cc.DelayTime:create(2)layer:addChild(sprite)sprite:setPosition(VisibleRect:center())local callRemove = function()sprite:removeFromParent(true)endsprite:runAction(cc.Sequence:create(act, cc.CallFunc:create(callRemove)))endlocal scheduler = cc.Director:getInstance():getScheduler();_schedule = scheduler:scheduleScriptFunc(layer.fnActionPause, 3, false)--test end
4. lua和c++接口的区别
(1)c++
* c++增加定时器或者事件回调函数,不管是selector还是c++ 11中的std::function,都需要保存回调函数的类对象target
* 拿定时器来说Scheduler::schedule():会把事件加到类的成员变量_hashForTimers中,pauseTarget函数就会处理该结构
void Scheduler::schedule(const ccSchedulerFunc& callback, void *target, float interval, unsigned int repeat, float delay, bool paused, const std::string& key) {CCASSERT(target, "Argument target must be non-nullptr");CCASSERT(!key.empty(), "key should not be empty!");tHashTimerEntry *element = nullptr;HASH_FIND_PTR(_hashForTimers, &target, element);if (! element){element = (tHashTimerEntry *)calloc(sizeof(*element), 1);element->target = target;HASH_ADD_PTR(_hashForTimers, target, element);// Is this the 1st element ? Then set the pause level to all the selectors of this targetelement->paused = paused;} //下面的省略掉...}
(2)lua
* lua添加事件的注册函数为Scheduler::scheduleScriptFunc
*会把事件回调函数以句柄的方式存放在另外一个结构:_scriptHandlerEntries中
* 结构_scriptHandlerEntries只有在Scheduler::update函数中同_hashForTimers一样的处理
*但是!没有pause函数会处理这个结构!!!--->所以理论上lua的事件是没有这个层级上的暂停的(paused=true);
总结
转载于:https://www.cnblogs.com/pk-run/p/4441295.html
cocos2dx中node的pause函数(lua)相关推荐
- 使用BabeLua3.x在cocos2d-x中编辑和调试Lua
BabeLua是一款基于VS2012/2013的Lua集成开发环境,具有Lua语法高亮,语法检查,自动补全,快速搜索,注入宿主程序内对Lua脚本进行调试,设置断点观察变量值,查看堆栈信息等功能. 如何 ...
- Lua中调用C/C++函数 (转)
1.前言 上次偶说到从C/C++中调用Lua的函数, 然后就有朋友问从Lua中如何调用C/C++的 函数, 所以偶们这次就来说说这个问题. 首先偶们会在C++中建立一个函数, 然后 告知Lua有这个函 ...
- cocos2d-x 中LUA和平台之间的函数调用理解
先看一张流程图如下: 第一步: 先把NDKHelper中的方法转成LUA中可以调用的,转得方法可参考quick中LUA的用法.这个类主要是中间桥梁的作用,它可以根据是什么平台调用IOSNDKHelpe ...
- Matlab中pause函数的使用
目录 语法 示例 pause函数的作用是暂时停止执行 MATLAB. 语法 pausepause(n)pause(state)oldState = pause(state) (1)pause暂时停止执 ...
- linux中的信号3——alarm、pause函数
以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 1.alarm函数 内核以API形式提供的闹钟: 可以为当前进程定义闹钟,时间到了会发出SIGALRM信号. 每个进程 ...
- cocos2d-x中的动作分析
在cocos2d-x中动作的执行调度是受cocos2d-x的全局定时器控制的,当初始完导演后便已经启动用于管理动作的update定时器. bool CCDirector::init(void) {.. ...
- cocos2d-x中几种存储数据的方式
说明:本文所论述内容均基于cocos2dx 3.0 版本. 1.UserDefault 它是cocos2d-x用来存取基本数据类型用的.保存为XML文件格式. 查看CCUserDefault文件,可以 ...
- Cocos2dx中零散知识点
cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce.功能分别是 每隔几秒调用自定义函数.调用系统默认的update()函数.只调用一次自定义函数 ...
- cocos2d 嵌入网页_在 cocos2d-x 中嵌入浏览器
在 cocos2d-x 中嵌入浏览器 次阅读 Embeds a browser in cocos2d-x 在游戏中嵌入网页是很常见的需求,cocos2d-x 引擎官方并没有提供这个功能. 我在网上转了 ...
最新文章
- Java程序员的春天!java引用数据类型和基本数据类型区别
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】HAWQ数据仓库 使用之 gpfdist协议
- 收集下阿里集团下的技术BLOG
- python框架 mysql数据库_在Python的框架中为MySQL实现restful接口的教程
- 关于CSS3实现响应式布局的一些概念和术语
- cuda加速的头文件_如何从C ++头文件调用CUDA文件?
- 分布式系统监视zabbix讲解十之监控tomcat--技术流ken
- python-实现栈结构
- Spring IoC-02
- 最新网卡驱动下载win7
- Uri Herrera 近日宣布 Nitrux 2.1 的发布和普遍可用性
- MySQL 导入数据 时间数据 不准确 解决办法
- 封装win7系统,安装系统时提示:windows无法完成系统配置,若要尝试恢复配置,请重新启动计算机?
- STM32L476 FLASH option bytes
- Ubuntu20.04电脑开启热点
- 如何从文件夹打开dos界面/命令行工具
- 2021csp/s初赛
- php 包含字母随机数_php随机生成数字字母组合的方法
- json字符串转成 json对象 json对象转换成java对象
- 15000 字的 SQL 语句大全!
热门文章
- android性能调优的工具,神兵利器-Android 性能调优工具 Hugo
- 利用Python进行数据分析--数据加载、存储与文件格式
- php加密密码解析,php密码加密解密
- bat 调用class文件_拯救写框架的程序员!用字节码替代反射,实现任意函数调用...
- envi栅格TIF数据进行分割_栅格数据镶嵌
- network reactnative_Chrome 调试 react-native 通过Network面板查看网络请求
- 7. 吴恩达机器学习课程-作业7-Kmeans and PCA
- 编译原理教程_4 语法分析
- html中心点缩放,html canvas 让物体随物体中心缩放
- js调用java_Js调用Java方法并互相传参的简单实例