当前位置: 首页 > news >正文

Cocos Creator 定时任务

目录

Javascript 内置定时器

Cocos 计时器

update 函数

参考

Javascript 内置定时器

setTimeout, setInterval

Cocos 计时器

     先创建一个指向某个组件的变量,变量名为 component

  1. 开始一个计时器

     component.schedule(function() {// 这里的 this 指向 componentthis.doSomething();}, 5);
    

    上面这个计时器将每隔 5s 执行一次。

  2. 更灵活的计时器

     // 以秒为单位的时间间隔var interval = 5;// 重复次数var repeat = 3;// 开始延时var delay = 10;component.schedule(function() {// 这里的 this 指向 componentthis.doSomething();}, interval, repeat, delay);
    

    上面的计时器将在 10 秒后开始计时,每 5 秒执行一次回调,执行 3 + 1 次。

  3. 只执行一次的计时器(快捷方式)

     component.scheduleOnce(function() {// 这里的 this 指向 componentthis.doSomething();}, 2);
    

    上面的计时器将在两秒后执行一次回调函数,之后就停止计时。

  4. 取消计时器

    开发者可以使用回调函数本身来取消计时器:

     this.count = 0;this.callback = function () {if (this.count === 5) {// 在第六次执行回调时取消这个计时器this.unschedule(this.callback);}this.doSomething();this.count++;}component.schedule(this.callback, 1);
    

注意组件的计时器调用回调时,会将回调的 this 指定为组件本身,因此回调中可以直接使用 this

下面是 Component 中所有关于计时器的函数:

  • schedule:开始一个计时器
  • scheduleOnce:开始一个只执行一次的计时器
  • unschedule:取消一个计时器
  • unscheduleAllCallbacks:取消这个组件的所有计时器

这些 API 的详细描述都可以在 Component API 文档中找到。

update 函数

除此之外,如果需要每一帧都执行一个函数,请直接在 Component 中添加 update 函数,这个函数将默认被每帧调用,这在 生命周期文档 中有详细描述。

游戏开发的一个关键点是在每一帧渲染前更新物体的行为,状态和方位。这些更新操作通常都放在 update 回调中。

一般 1s = 60 帧

参考

1、Cocos Creator 2.4 手册 - 使用计时器

相关文章:

  • JavaEE 初阶篇-生产者与消费者模型(线程通信)
  • ffmpeg Android 笔记
  • uni-app如何实现高性能
  • java——文件上传
  • C++读取.bin二进制文件
  • 掌握数据相关性新利器:基于R、Python的Copula变量相关性分析及AI大模型应用探索
  • 日志服务 HarmonyOS NEXT 日志采集最佳实践
  • NLP学习路线总结
  • jupyter notebook 配置默认文件路径
  • Linux基础篇:Linux第三方软件仓库——可以让Linux变得有趣的软件仓库
  • 非关系型数据库-----------探索 Redis高可用 、持久化、性能管理
  • day19-归并两个有序数组
  • C和C++内存管理
  • BPMNJS 在原生HTML中的引入与使用
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • 2018一半小结一波
  • CEF与代理
  • Github访问慢解决办法
  • HTML中设置input等文本框为不可操作
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • laravel with 查询列表限制条数
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vim Clutch | 面向脚踏板编程……
  • web标准化(下)
  • Xmanager 远程桌面 CentOS 7
  • 开发基于以太坊智能合约的DApp
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #Linux(权限管理)
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (LeetCode 49)Anagrams
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)fiber的基本认识
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (转载)虚函数剖析
  • ***检测工具之RKHunter AIDE
  • .NET 4.0中的泛型协变和反变
  • .NET 8.0 发布到 IIS
  • /run/containerd/containerd.sock connect: connection refused
  • ??javascript里的变量问题
  • @EventListener注解使用说明
  • @Transactional类内部访问失效原因详解
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [Android] 修改设备访问权限
  • [Android]使用Retrofit进行网络请求
  • [codevs 1515]跳 【解题报告】
  • [C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!
  • [HeadFrist-HTMLCSS学习笔记][第一章Web语言:开始了解HTML]
  • [InnoDB系列] -- SHOW INNODB STATUS 探秘
  • [iOS开发]iOS中TabBar中间按钮凸起的实现
  • [Kubernetes]2. k8s集群中部署基于nodejs golang的项目以及Pod、Deployment详解