首页 > 代码库 > Cocos2d-X学习——Android不同设备FPS不同问题
Cocos2d-X学习——Android不同设备FPS不同问题
2014-07-16
环境:Cocos2dx 2.2.4
AppDelegate.cpp中FPS设置为 60
pDirector->setAnimationInterval(1.0 / 60);
问题:在两台Android机器上跑。 两台的FPS不一样
I9100: 4.0系统,FPS 约60,(修改FPS为30,也会改变)
S5700: 2.3系统,FPS 约80,(修改FPS为30,照样80)
这样就导致了在游戏刷帧的时候,两台机器跑的速度不一样了。
解决方法如下(应该只有Android有这个问题)
修改Android中cocos2dx的 Cocos2dxRenderer.java代码
(PS:如果按照官方的注释修改,也不能达到FPS一致)
@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. */ // /* 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(); final long afterInNanoSeconds = System.nanoTime(); final long interval = afterInNanoSeconds - nowInNanoSeconds; // /* // 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; // */ }
以上,谢谢
本文地址:http://blog.csdn.net/you_and_me12/article/details/37885461
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。