
解决cocos2dx3.2设置帧率安卓不变的问题
昨天公司要求游戏帧率设置为30,因为上线的一款子游戏是30帧率的,但是我们目前正在做的游戏都是60帧率,如果改的话就会造成画面卡顿,动画什么的都要改动。这就尴尬了,于是我提出了每次进子游戏根据游戏单独设置fps60,退出在设置为30。。
同事说这个设置只是在Win32下有用,安卓不行,安卓有个bug。是因为cocos2d\cocos\platform\android的CCApplication.cpp里没实现setAnimationInterval这个方法。
这是什么鬼?内容的代码呢??于是对比了新版本的这个文件,发现里面是个jni方法,调用的是cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxRenderer.java的setAnimationInterval方法。
于是我把新引擎的代码复制进来,编译报错了,发现cocos2dx3.2的jni也不完善,于是自己手动实现下。
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文件。
把注释部分修改下,我这里直接从3.14.1复制了代码贴了进来。
这样手机的fps确实会变化了,不是一直显示60了。不过发现了个新的bug,安卓切换帧率的时候会有轻微的闪屏,还没搞清楚原因。 By:闭眼就天黑 2017-02-10
本文地址:https://www.byjth.com/biji/102.html
版权声明:若无注明,本文皆为“闭眼就天黑专栏_技术博客_个人学习总结”原创,转载请保留文章出处。
- 【游戏跨平台】移植cocos2dx的android项目到IOS平台
- Cocos2dx学习笔记5:场景(Scene)
- windows7上搭建COCOS2D-X 3.5开发环境
- cocos2d-x中DrawNode常见的图像绘制函数
- cococs2dx打包ios报错_ossl_connect_common in libcocos2d ios.a(libcurl_la-openssl.o)
- Cocos2dx学习笔记4:导演(Director)
- 解决cocos2dx3.2设置FPS安卓帧率不变的问题
- Cocos2dx学习笔记1:创建游戏项目解决方案
- cocos2dx网游选服界面制作一:界面需求分析
- Cocos2dx c++实现IOS版本热更新资源的存储
版权所有:《闭眼就天黑专栏_技术博客_个人学习总结》 => 《解决cocos2dx3.2设置FPS安卓帧率不变的问题》
本文地址:https://www.byjth.com/biji/102.html
除非注明,文章均为 《闭眼就天黑专栏_技术博客_个人学习总结》 原创,欢迎转载!转载请注明本文地址,谢谢。