首页 > 代码库 > cocos2dx新研发的游戏,手机运行时非常热的解决方案
cocos2dx新研发的游戏,手机运行时非常热的解决方案
cocos2dx新研发的游戏,手机运行时非常热,有需要的朋友可以参考下。
cocos2dx新研发的游戏,手机上运行时导致手机非常热,后来听其他项目组分享时得知,可以通过降帧解决这个问题,原来是cocos2dx默认的60,后来修改为30,测试发现,手机发热问题解决了。
修改代码:
AppDelegate.cpp
// set FPS. the default value is 1.0/60 if you don‘t call this
pDirector->setAnimationInterval(1.0 / 30);
还有就是:Cocos2dxRenderer.java
//private static long sAnimationInterval = (long) (1.0 / 60 * Cocos2dxRenderer.NANOSECONDSPERSECOND);private static long sAnimationInterval = (long) (1.0 / 30 * Cocos2dxRenderer.NANOSECONDSPERSECOND);...@Overridepublic 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();// should render a frame when onDrawFrame() is called or there is a// "ghost"Cocos2dxRenderer.nativeRender();final long afterRenderNano = System.nanoTime();//final long interval = afterRenderNano - mLastTickInNanoSeconds - Cocos2dxRenderer.sAnimationInterval;// afterRenderNano - nowInNanoSeconds;//nowInNanoSeconds - this.mLastTickInNanoSeconds;final long interval = afterRenderNano - nowInNanoSeconds;// fps controllingif (interval < Cocos2dxRenderer.sAnimationInterval) {//Log.d("onDrawFrame", "Cancel frame" + interval + "/" +Cocos2dxRenderer.sAnimationInterval);try {// because we render it before, so we should sleep twice time intervalThread.sleep((Cocos2dxRenderer.sAnimationInterval - interval) / Cocos2dxRenderer.NANOSECONDSPERMICROSECOND);} catch (final Exception e) {}} //this.mLastTickInNanoSeconds = nowInNanoSeconds;}
cocos2dx新研发的游戏,手机运行时非常热的解决方案
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。