通过setAnimationInterval设置帧频时,发现在android下没有效果的

在Cocos2dxRenderer .java文件里面找到了onDrawFrame这个函数。里面有句注释 :

FPS controlling algorithm is not accurate, and it will slow down FPS on some devices. So comment FPS controlling code.

这个函数里的大部分代码都被注释掉了

 public void onDrawFrame(final GL10 gl) {

 /*
* FPS controlling algorithm is not accurate, and it will slow down FPS
* on some devices. So comment FPS controlling code.
*/ /*
final long nowInNanoSeconds = System.nanoTime();
final long interval = nowInNanoSeconds - this.mLastTickInNanoSeconds; */ // should render a frame when onDrawFrame() is called or there is a
// "ghost"
Cocos2dxRenderer.nativeRender(); /*
// fps controlling if (interval < Cocos2dxRenderer.sAnimationInterval) { try {
// because we render it before, so we should sleep twice time interval
Thread.sleep((Cocos2dxRenderer.sAnimationInterval - interval) /Cocos2dxRenderer.NANOSECONDSPERMICROSECOND);
} catch (final Exception e) { }
} this.mLastTickInNanoSeconds = nowInNanoSeconds;
*/ }

经过google后暂时找到了解决方案,是否有问题需要待测试:

 private long renderingElapsedTime;

 @Override
public void onDrawFrame(final GL10 gl) {
/*
* FPS controlling algorithm is not accurate, and it will slow down FPS
* on some devices. So comment FPS controlling code.
*/ try {
if (renderingElapsedTime< Cocos2dxRenderer.sAnimationInterval) {
Thread.sleep((Cocos2dxRenderer.sAnimationInterval - renderingElapsedTime) / NANOSECONDSPERMICROSECOND);
}
} catch (InterruptedException e) {
e.printStackTrace();
} // Get the timestamp when rendering started
long renderingStartedTimestamp = System.nanoTime(); // should render a frame when onDrawFrame() is called or there is a
// "ghost"
Cocos2dxRenderer.nativeRender(); // Calculate the elapsed time during rendering
renderingElapsedTime = (System.nanoTime() - renderingStartedTimestamp);
}

cocos2d-x在android真机上设置帧率无效的问题的更多相关文章

  1. React-Native项目在Android真机上调试

    目录 1.确保你的设备已经成功连接.可以终端输入adb devices来查看: 2.终端运行npm start 开启本地服务,成功后运行react-native run-android来在设备上安装并 ...

  2. 在android真机上使用sqlite3

    #zijun#2013.10.29#QQ:223663737 在android真机上使用sqlite3 前期准备: 1:保证手机已经ROOT 操作步骤: 1 : 打开CMD 2 : 进入android ...

  3. [转]Fiddler抓取Android真机上的HTTPS包

    此篇文章转载自:http://blog.csdn.net/roland_sun/article/details/30078353 工作中经常会需要对一些app进行抓包, 但是每次默认都是只抓http请 ...

  4. cocos2dx - 部署到android真机上错误整理

    利用Cgywin编译工具来将cocos2dx 在Android运行所需要的C++文件编译 1. ./build_native.sh(最后一把执行出错) please define NDK_ROOT i ...

  5. 导出android真机上应用的apk文件

    1. 首先你的手机要开启调试模式 2. 终端输入命令行 (这个时候需要在手机端打开此应用.它的思路是抓取出当前窗口的包名.以下命令操作自己未亲自验证.) adb shell dumpsys windo ...

  6. Android的TextView设置padding无效

    I finally found the problem I have to set the background first before setting the padding. Setting t ...

  7. cocos2d-x 不能在android真机debug的问题

    最近在做cocos2d-x开发的时候,发现在android真机上不能调试C++代码,显示如下警告信息 Ignoring packet error, continuing... warning: unr ...

  8. 通过adb shell操作android真机的SQLite数据库

    要通过命令行直接操作android真机上的SQLite数据库,可以直接通过adb shell来完成,不过,前提是必须获得root权限. 另外,android系统其实就是linux的shell,这个应该 ...

  9. 如何在真机上调试Android应用程序(图文详解)(zz)

    http://www.cnblogs.com/lanxuezaipiao/archive/2013/03/11/2953564.html   1.首先将手机设置为调试模式 方法:设置——应用程序——开 ...

随机推荐

  1. cache和内存

    CPU与内存 北桥:主桥,主要用来处理高速信号,负责与处理器的联系:CPU通过FSB前端总线来访问内存控制器. 南桥:IO桥,负责IO总线之间的通信,比如PCI总线.SATA.USB等,可以连接光驱. ...

  2. Linux_经常使用命令

    1. ls显示文件夹文件夹及文件使用方式: ls -lt -a 显示文件夹下全部文件及文件夹包括 . 与 .. -A 显示文件夹下全部文件及文件夹不包括 . 与 .. -l 显示文件夹下全部文件及文件 ...

  3. 【Mac系统 + Mysql】之安装Mysql数据库

    安装Mysql步骤: 一.下载 参考文章<mac 安装MySQL> 到Mysql官网下载.dmg格式的文件 先放弃了,看下面的简易安装. 二.使用homebrew安装MySQL(推荐) 如 ...

  4. 什么是Java Server Pages?

    JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet ...

  5. Linux3_文件系统

    1.Linux发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同.目录结构基本上都是一样的. Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区), ...

  6. maven安装jar包到本地仓库

    mvn install:install-file -Dfile=D:/asm-1.5.3.jar -DgroupId=asm  -DartifactId=asm -Dversion=1.5.3 -Dp ...

  7. HDU 5045 5047 5050 5053(上海网络赛E,F,I,L)

    HDU 5045 5047 5050 5053 太菜了,名额差点没保住.吓尿..赶紧开刷树链抛分 5045:状压DP.压缩10个人.因为两个人不能差2以上,所以能够用01表示 5047:推推公式就可以 ...

  8. PHP-Manual的学习----【语言参考】----【类型】-----【Interger类型】

    2017年7月20日15:48:46Integer 整型 1.什么是整数?正数 0 负数2.整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +). 二进制表达的 ...

  9. 【BZOJ1132】[POI2008]Tro 几何

    [BZOJ1132][POI2008]Tro Description 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 Input 第一行给出数字N,N在[3,3000 ...

  10. lua 元表是个啥?

    function readOnly(t) local proxy = {} local mt = { __index = t, __newindex = function(t,k,v) error(& ...