解决cocos2dx3.2设置FPS安卓帧率不变的问题
首页 > cocos2dx专栏 > cocos2dx学习    作者:闭眼就天黑   2017年2月10日 17:14 星期五   热度:9279°   百度已收录  
时间:2017-2-10 17:14   热度:9279° 

解决cocos2dx3.2设置帧率安卓不变的问题

 

昨天公司要求游戏帧率设置为30,因为上线的一款子游戏是30帧率的,但是我们目前正在做的游戏都是60帧率,如果改的话就会造成画面卡顿,动画什么的都要改动。这就尴尬了,于是我提出了每次进子游戏根据游戏单独设置fps60,退出在设置为30。。

同事说这个设置只是在Win32下有用,安卓不行,安卓有个bug。是因为cocos2d\cocos\platform\androidCCApplication.cpp里没实现setAnimationInterval这个方法。

 

这是什么鬼?内容的代码呢??于是对比了新版本的这个文件,发现里面是个jni方法,调用的是cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxRenderer.javasetAnimationInterval方法。

 

于是我把新引擎的代码复制进来,编译报错了,发现cocos2dx3.2jni也不完善,于是自己手动实现下。

 

void Application::setAnimationInterval(double interval)

{

    // NYI

                   cocos2d::JniMethodInfo minfo;

 

                   if (cocos2d::JniHelper::getStaticMethodInfo(minfo, "org/cocos2dx/lib/Cocos2dxRenderer", "setAnimationInterval", "(D)V"))

                   {

                            minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID, interval);

                   }

}

 

这样就可以成功的在安卓平台的切换fps了。打包测试下,界面还是没有变化,还是60.

 

打开cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxRenderer.java文件。

1486718183132765.png

 

把注释部分修改下,我这里直接从3.14.1复制了代码贴了进来。

1486718402335592.png

 

这样手机的fps确实会变化了,不是一直显示60了。不过发现了个新的bug,安卓切换帧率的时候会有轻微的闪屏,还没搞清楚原因。 By:闭眼就天黑 2017-02-10

二维码加载中...
本文作者:闭眼就天黑      文章标题: 解决cocos2dx3.2设置FPS安卓帧率不变的问题
本文地址:https://www.byjth.com/biji/102.html
版权声明:若无注明,本文皆为“闭眼就天黑专栏_技术博客_个人学习总结”原创,转载请保留文章出处。
相关文章

版权所有:《闭眼就天黑专栏_技术博客_个人学习总结》 => 《解决cocos2dx3.2设置FPS安卓帧率不变的问题
本文地址:https://www.byjth.com/biji/102.html
除非注明,文章均为 《闭眼就天黑专栏_技术博客_个人学习总结》 原创,欢迎转载!转载请注明本文地址,谢谢。

王菲菲
这个好,正需要,帮我解决了问题,感谢!
@葫芦岛做网站:我也碰到了这个轻微闪屏的问题,请问后来找到了原因吗
@super:资源ui多就30帧,,少就60帧.
@闭眼就天黑:我指的是切换帧率闪屏的原因

返回顶部    首页    手机版本    版权所有:闭眼就天黑专栏_技术博客_个人学习总结
    站长: 闭眼就天黑    搜索cocos2dx主题 技术支持:闭眼就天黑   皖ICP备14007736号-1  

皖公网安备 34132102000107号

   sitemap