zoukankan      html  css  js  c++  java
  • 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);
    
    ...
    
    @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();
    
    // 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 controlling
    
    if (interval < Cocos2dxRenderer.sAnimationInterval) {
    
    //Log.d("onDrawFrame", "Cancel frame" + 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;
    
    }
  • 相关阅读:
    指针
    初级程序员面试不靠谱指南(七)
    初级程序员面试不靠谱指南(六)
    Hadoop 中利用 mapreduce 读写 mysql 数据
    Mapreduce的文件和hbase共同输入
    mapreduce多文件输出的两方法
    mapreduce中一个map多个输入路径
    GDB介绍
    超强的指针学习笔记
    iOS开发之Appstore篇——版本更新
  • 原文地址:https://www.cnblogs.com/damowang/p/4193990.html
Copyright © 2011-2022 走看看