Quick cocos2dx-Lua(V3.3R1)学习笔记(7) ---计时器,我是个定时吃饭睡觉的好孩子
来源:互联网 发布:晋城网络电视台导视5 编辑:程序博客网 时间:2024/05/01 02:49
计时器,就是让系统每隔一段时间调用我们的函数,来处理一些事情,比如飞机战斗游戏中,子弹与敌机之间的碰撞,系统每一帧调用检测函数,检测两者是否碰撞。
quick里面帮我们把cocos2dx lua提供的scheduler封装到了framework里面的scheduler.lua文件里面。
注意:计时器模块在初始化中不会自动载入,所以我们得手动获得这个模块
local scheduler = require(cc.PACKAGE_NAME .. ".scheduler")PACKAGE_NAME这个是framework文件夹的别名
我们来看第一个函数
scheduler.scheduleUpdateGlobal()scheduler.scheduleUpdateGlobal(listener)计划一个全局帧事件回调,并返回该计划的句柄。全局帧事件在任何场景中都会执行,因此可以在整个应用程序范围内实现较为精确的全局计时器。该函数返回的句柄用作 scheduler.unscheduleGlobal() 的参数,可以取消指定的计划。Parametersfunction 回调函数
Returnsmixed schedule句柄
根据这个写个代码实验一下
function MyScene:ctor()MyScene.handler_ = scheduler.scheduleUpdateGlobal(function() print("全局帧事件计时器。。。。。") end)local button = cc.ui.UIPushButton.new({normal = "Button01.png",pressed = "Button01Pressed.png"},{scale9= true})button:align(display.CENTER,display.cx,display.cy)button:setButtonSize(200, 100)button:addTo(self)button:onButtonClicked(function()scheduler.unscheduleGlobal(MyScene.handler_)print("停止全局帧事件计时器")end)end运行一下,我们会看到很快的不停得输出
全局帧事件计时器。。。。。点击按钮,就停止计时器了,这就是系统画面每帧会调用
但是我不想这么快执行回调函数,还有什么方法呢?
系统提供了,每隔一段时间调用一下回调函数
local function schedulerFunction(dt)print("每隔2s中调用一次我",os.clock())endfunction MyScene:ctor()MyScene.handler_ = scheduler.scheduleGlobal(schedulerFunction, 2.0)local button = cc.ui.UIPushButton.new({normal = "Button01.png",pressed = "Button01Pressed.png"},{scale9= true})button:align(display.CENTER,display.cx,display.cy)button:setButtonSize(200, 100)button:addTo(self)button:onButtonClicked(function()scheduler.unscheduleGlobal(MyScene.handler_)print("停止全局事件计时器")end)end
运行查看控制台输出
最后一个函数,就是全局值运行一次的计时器,你将你只想运行一次的函数放入这里运行即可
local function schedulerFunction(dt)print("小明,吃晚饭了,不要玩游戏了")endfunction MyScene:ctor()MyScene.handler_ = scheduler.scheduleGlobal(schedulerFunction, 1.5)scheduler.performWithDelayGlobal(function()print("我吃过了,你们吃吧")scheduler.unscheduleGlobal(MyScene.handler_) end, 6)end
很简单,但是很强大,就看你怎么使用了!!!
0 0
- Quick cocos2dx-Lua(V3.3R1)学习笔记(7) ---计时器,我是个定时吃饭睡觉的好孩子
- Quick cocos2dx-Lua(V3.3R1)学习笔记(1)----创建新项目
- Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸
- Quick cocos2dx-Lua(V3.3R1)学习笔记(6)---- 让精灵执行不同的动作
- Quick cocos2dx-Lua(V3.3R1)学习笔记(10)-----用自带的build_apk生成APK
- Quick cocos2dx-Lua(V3.3R1)学习笔记(3)----文本渲染之用BM TTF创建文本
- Quick cocos2dx-Lua(V3.3R1)学习笔记(5)----让精灵动起来吧,使用序列帧动画
- Quick cocos2dx-Lua(V3.3R1)学习笔记(2)----不要老是显示Hello World,我们显示点别的
- Quick cocos2dx-Lua(V3.3R1)学习笔记(4)------创建精灵 菜单,让我们做个最简单的点击菜单显示精灵吧
- Quick cocos2dx-Lua(V3.3R1)学习笔记(十二)----使用Cocos Code IDE 配合自带的PrebuiltRuntimeLua.apk进行真机调试
- Quick cocos2dx-Lua(V3.3R1)学习笔记(8) ---- 事件篇之单点触摸事件,让我们用精灵模仿一个按钮吧
- Quick cocos2dx-Lua(V3.3R1)学习笔记(9)-----搭建安卓打包环境,用官方示例anysdk生成apk运行
- Quick cocos2dx-Lua中计时器(scheduler)
- Quick cocos2dx-Lua学习笔记
- cocos2dx quick lua 学习笔记1
- 我是个好孩子
- quick-cocos2dx-v3.3打包
- quick-cocos2dx学习笔记
- java实现监听类
- leetcode: Majority Element
- 求s=a+aa+aaa+aaaa+aa...a的值
- iconv 中文截断问题的解决方法
- 一些安装操作记载
- Quick cocos2dx-Lua(V3.3R1)学习笔记(7) ---计时器,我是个定时吃饭睡觉的好孩子
- 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓
- Java类加载器加载类顺序
- 次表面散射Subsurface Scattering(SSS)
- 进程的页表和页目录存储在内核空间还是用户空间?低端内存还是高端内存
- ubuntu下minicom和USB转串口(转)
- java使用layerpane设置背景图片
- JSON中存储Map的value将无法解析成相应的类型
- How to find a file in MS-DOS