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

cocos creator 帧率60 不生效meta50 能刷新到90

环境:
cocos creator 2.4.3
华为meta 50

背景:
小游戏 需要在update 里取帧率 发现跟时间对不上
游戏设置60帧
手机上显示 90帧
cc.game.setFrameRate(30) 显示 30帧
cc.game.setFrameRate(60) 显示 90帧

结论:
对于老版本的cocos creator 如果有依赖帧率的逻辑
需要自行注意逻辑正确性
cc.game.getFrameRate() 取出来的帧率 有可能 并不是当前真实帧率 只是逻辑帧率

源码分析:

	cocos2dxRenderer.java @Overridepublic void onDrawFrame(final GL10 gl) {if (mNeedToPause)return;if (mNeedShowFPS) {///IDEA: show FPS in Android Text control rather than outputing log.++mFrameCount;long nowFpsTime = System.nanoTime();long fpsTimeInterval = nowFpsTime - mOldNanoTime;if (fpsTimeInterval > 1000000000L) {double frameRate = 1000000000.0 * mFrameCount / fpsTimeInterval;Cocos2dxHelper.OnGameInfoUpdatedListener listener = Cocos2dxHelper.getOnGameInfoUpdatedListener();if (listener != null) {listener.onFPSUpdated((float) frameRate);}mFrameCount = 0;mOldNanoTime = System.nanoTime();}/}/** No need to use algorithm in default(60 FPS) situation,* since onDrawFrame() was called by system 60 times per second by default.*/if (sAnimationInterval <= INTERVAL_60_FPS) {Cocos2dxRenderer.nativeRender();} else {final long now = System.nanoTime();final long interval = now - this.mLastTickInNanoSeconds;if (interval < Cocos2dxRenderer.sAnimationInterval) {try {Thread.sleep((Cocos2dxRenderer.sAnimationInterval - interval) / Cocos2dxRenderer.NANOSECONDSPERMICROSECOND);} catch (final Exception e) {}}/** Render time MUST be counted in, or the FPS will slower than appointed.*/this.mLastTickInNanoSeconds = System.nanoTime();Cocos2dxRenderer.nativeRender();}}

分析上述代码

if (sAnimationInterval <= INTERVAL_60_FPS) {Cocos2dxRenderer.nativeRender();
}

说明 >= 60帧的设置 。没有处理刷新帧率 走的系统是高刷
所以会导致 dt 并不是 60帧的dt

相关文章:

cocos creator 帧率60 不生效meta50 能刷新到90

环境&#xff1a; cocos creator 2.4.3 华为meta 50 背景&#xff1a; 小游戏 需要在update 里取帧率 发现跟时间对不上 游戏设置60帧 手机上显示 90帧 cc.game.setFrameRate(30) 显示 30帧 cc.game.setFrameRate(60) 显示 90帧 结论&#xff1a; 对于老版本的cocos creator …...

探讨 cs2019 c++ 的STL 库中的模板 conjunction 与 disjunction

&#xff08;1&#xff09;在 STL 库源码中这俩模板经常出现&#xff0c;用来给源码编译中的条件选择&#xff0c;模板的版本选择等提供依据。先给出其定义&#xff1a; 以及&#xff1a; 可以得出结论&#xff1a; conj 是为了查找逻辑布尔型模板参数中的第一个 false &#x…...

【核弹】我的第一款IDEA插件

SuperHotSwap 插件名称叫做&#xff1a;SuperHotSwap&#xff08;超级热更新&#xff09; 开发初心&#xff1a;旨在做出一款最便捷的IDEA热更新插件&#xff0c;减少用户操作步骤&#xff0c;提供零配置的可视化操作更新。 为什么要写这个插件&#xff1a; 每次改一下Mappe…...

【工作篇】软件工程师的知识基础(持续更新)

目录 1. linux 知识篇 1. linux 知识篇 1. Linux API 是什么 Linux API 是指 Linux 操作系统 提供的应用程序接口&#xff0c;用于与操作系统进行交互。它包含了一系列的函数、系统调用、库函数和数据结构&#xff0c;用于实现各种系统级的操作&#xff0c;如文件操作、进程…...

知识付费系统开源方案,教育机构如何利用朋友圈做转介绍?

招生成本高&#xff0c;效果差让许多教育机构头疼不已。对于教育机构来说通过转介绍招生是一个非常有效的途径&#xff0c;那么教育机构如何利用朋友圈做转介绍呢?今天小编就来和大家分享一下。 利用朋友圈做转介绍&#xff0c;主要是通过做活动&#xff0c;来完成增加粉丝、扩…...

c++20 std::reinterpret_cast、std::bit_cast、std::static_cast

std::reinterpret_cast 类型不相关的转换&#xff0c;不安全例如转为&&#xff0c;不支持&#xff0c;要求sizeof相同&#xff1a; uint32_t n32 12345678;//0x00bc614e uint32_t* ptr reinterpret_cast<uint32_t*>(n32);//0x00bc614e uint32_t& ref reinter…...

PHP单独项目启动演示

文章目录 phpstudy得到文件打开phpStudy.exe运行项目 Apache运行后又自动停止 phpstudy 得到文件 一般我们会得到这么一个项目文件&#xff0c;如果外层有“中文路径”&#xff0c;请剪切此内容作为项目根目录即可 打开phpStudy.exe 因为我又正常的编程环境和mysql&#x…...

vscode 通过ssh 远程执行ipynb +可以切换conda env

主要是保证几个点 远程服务器python 环境没问题 conda这些也都有的ssh的账户 是有conda权限的没有免密就输入密码 免密教程就是最基本的那种 公钥copy过去就行了vscode 那几个插件都要装好 开始操作 首先 vscode 点击左侧工具栏中的扩展&#xff0c;搜索“ssh”&#xff0c;…...

ASP.NET银行大厅自助信息系统的开发与实现

摘 要 本毕业设计在基于银行业务大厅现有业务的基础上&#xff0c;针对自助银行的概念和其独有特点&#xff0c;通过.NETSQL技术&#xff0c;开发一个简单的银行大厅自助信息系统&#xff0c;完成一些自助银行的业务需求如帐户信息查询、帐户挂失、自助交费、留言、新闻查询…...

学习Vue3中reactive

学习Vue3中reactive 一、前言1、响应式对象2、对象属性的访问3、嵌套响应式对象4、避免直接修改响应式对象5、ref vs reactive 一、前言 在 Vue 3 中&#xff0c;reactive 是一个用于创建响应式对象的函数。响应式对象是 Vue 3 中数据驱动视图的核心&#xff0c;它们的属性的变…...

【Transformer-BEV编码(10)】CVPR2021 PYVA 第一个明确提到 cross-attention decoder可用于视图转BEV

论文信息 论文名&#xff1a;Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation 中文&#xff1a;通过交叉视图变换&#xff08;crossview transform module&#xff09;估计单目道路场景布局 数据集&#xff1a;KITT…...

nestJs中跨库查询

app.module.ts中配置 模块的module中 注意实体类在写的时候和数据库中的表名一样 service中使用一下...

Java编程思想

面向对象编程(OOP)-CSDN博客 面向对象(OOP)的主要特点-CSDN博客 接口(Interface)和抽象类(Abstract Class)编程思想-CSDN博客 接口(Interface)和抽象类(Abstract Class)区别-CSDN博客 抽象类(Abstract Class)-CSDN博客 普通类和抽象类-CSDN博客 内部类编程思想-CSDN博客 …...

数组(Java)

数组 数组是相同类型元素的集合。 数组的定义和使用 数组的创建 数组名又叫引用变量&#xff0c;简称引用 下面代码段中new表示创建新的对象 T[ ] 数组名 new T[ N ];//数组名又叫引用变量&#xff0c;简称变量 //T&#xff1a;表示数组中存放元素的类型 //T[]&#xf…...

接口自动化测试框架搭建

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、原理及特点 参数放在XML文件中进行管理用httpClien…...

(四十二)第 6 章 树和二叉树(树的二叉链表(孩子-兄弟)存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…...

测试萌新Python学习(五)接口自动化测试requests

requests 接口自动化测试requests库基本实现请求-GET基本实现请求-POST基本实现请求-补充 sessionCookie和Session案例params 接口自动化测试 概念程序驱动代替人工驱动去实现接口测试 实现方式 测试工具(jmeter, postman, …)编码工具(python, java, …) 比较 工具 优点:…...

Python 机器学习 基础 之 监督学习 [朴素贝叶斯分类器] / [决策树] 算法 的简单说明 / [graphviz] 绘制决策树

Python 机器学习 基础 之 监督学习 [朴素贝叶斯分类器] / [决策树] 算法 的简单说明 / [graphviz] 绘制决策树 目录 Python 机器学习 基础 之 监督学习 [朴素贝叶斯分类器] / [决策树] 算法 的简单说明 / [graphviz] 绘制决策树 一、简单介绍 二、监督学习 算法 说明前的 数…...

QT日志类SimpleQtLogger的简单记录

在现代软件开发中&#xff0c;日志记录是必不可少的部分。它不仅帮助开发者在调试和维护软件时了解程序的运行状态&#xff0c;还能提供关键的错误信息。对于使用Qt框架开发应用程序的开发者来说&#xff0c;选择一个合适的日志库至关重要。本文将详细介绍Qt日志库SimpleQtLogg…...

设计模式:观察者模式

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了对象之间的一对多依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都会得到通知并被自动更新。这种模式通常被用来实现事件处理系统、实时数据更新、…...

告别手动摆放!UE5.2+PCG插件:程序化实现枯木生蘑菇、岩石长苔藓的生态细节

UE5.2程序化生态细节&#xff1a;用PCG插件实现枯木生蘑菇的魔法 当游戏场景中的枯木自动长出蘑菇&#xff0c;岩石表面自然覆盖苔藓时&#xff0c;这种生态细节的呈现往往能让虚拟世界瞬间"活"起来。传统手动摆放的方式不仅耗时耗力&#xff0c;更难以实现自然生长的…...

RK3576开发板AP6275S无线模块调试:从驱动到应用实战

1. 项目概述&#xff1a;从零上手RK3576的无线模块调试最近在折腾一块基于瑞芯微RK3576的国产工业评估板——眺望电子的EVM-RK3576。这块板子接口资源相当丰富&#xff0c;双千兆网口、CAN、RS485、USB3.0等一应俱全&#xff0c;对于做工业网关、边缘计算盒子或者多媒体终端的开…...

K3s离线安装保姆级避坑指南:从镜像准备到集群验证(含Harbor私有仓库配置)

K3s离线安装全流程实战&#xff1a;从私有仓库搭建到集群高可用 在金融、军工、政务等对网络安全要求极高的领域&#xff0c;离线环境部署Kubernetes集群已成为刚需。作为轻量级Kubernetes发行版&#xff0c;K3s凭借其小于50MB的二进制体积和内置组件简化设计&#xff0c;成为隔…...

CANN/asc-devkit log1pf函数文档

log1pf 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/can…...

保姆级教程:用VASP和VESTA搞定CO吸附在Pt(111)表面的差分电荷密度图

从零开始&#xff1a;CO-Pt(111)体系差分电荷密度计算全流程解析 在催化反应机理研究中&#xff0c;差分电荷密度分析犹如一把精密的手术刀&#xff0c;能够清晰揭示分子与催化剂表面之间的电子"对话"。对于刚踏入计算催化领域的研究者而言&#xff0c;掌握这项技能不…...

cp520靶场学习笔记

正文1、端口扫描2、web登录页面用户密码爆破3、文件上传漏洞利用4、nc 反弹5、Linux用户检索与特权分析6、图片隐写7、解密与格式转换8、cp命令横向获取用户密码9、diff命令进行文件比较正文 kali攻击机地址&#xff1a;192.168.1.4 靶场地址&#xff1a;192.168.1.15 1、端口…...

考前终极口诀合集,30秒过一遍

考前最后冲刺&#xff0c;别再翻教材了&#xff01;把所有核心口诀集中在一起&#xff0c;科科过软考培训对系统集成项目管理工程师考前冲刺从头到尾过一遍&#xff0c;30秒搞定&#xff0c;能掌握不少必会知识点。一、挣值与关键路径——计算题的铁口诀挣值分析口诀&#xff1…...

用TensorRT加速你的YOLOv5:Windows C++推理部署实战(附完整项目配置)

用TensorRT加速YOLOv5&#xff1a;Windows C推理部署全流程解析 在计算机视觉领域&#xff0c;YOLOv5因其出色的实时检测性能广受欢迎。但当我们需要将训练好的模型部署到实际生产环境时&#xff0c;Python的解释执行往往难以满足性能要求。这时&#xff0c;TensorRT作为NVIDIA…...

免费本地语音识别的终极解决方案:3步实现完全离线实时语音转文字

免费本地语音识别的终极解决方案&#xff1a;3步实现完全离线实时语音转文字 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字化办公和在线学习日益普及的今天&#xff0c;你是否还在为云端语音识别服务的隐私…...

探索罗技鼠标宏:掌握PUBG压枪技术的完整路径

探索罗技鼠标宏&#xff1a;掌握PUBG压枪技术的完整路径 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在《绝地求生》这款竞技性极强的射击游戏…...