相关疑难解决方法(0)

恒定FPS Android OpenGLES

你好android开发者,

我正在使用OpenGLES 1.0在Eclipse中开发一款适用于Android的简单游戏.我使用三星Galaxy S2 Android(2.3)作为开发设备.

我有一个关于双核并使帧速率不变的问题.

所以我管理创建了GLSurfaceView并覆盖onDrawFrame()函数,我调用了LogicUpdate(deltatime)函数和Render()函数.

是的,现在都是单线程.

我得到的问题是双核心.如果我通过进入设置 - >省电并检查系统省电来禁用双核,我意识到渲染会自动锁定在30 FPS.但是如果我通过取消选中系统省电来启用双核,我会发现渲染被锁定在60 FPS,但手机变热并且电池耗电非常快.

因此我的想法是让我的游戏以30 FPS运行以节省一些电量.

所以为了做到这一点,我使用下面的代码.

在我进行逻辑更新之前,我称之为代码的和平,请记住所有这些都是在onDrawFrame()中完成的.

if( CONST_FPS > 0 && StartTime > 0 )
{           
    /////////////////////////////////////////////////////////////////
    // Get frame time
    ////////////////////////////////////////////////////////////////
    long endTime  = System.currentTimeMillis(); 
    long time     = endTime - StartTime;
    //              
    long wantedtime = 1000 / CONST_FPS;
    //
    long wait = 0;
    if( time < wantedtime )
    {
        wait = wantedtime - time;
        //                  
        Thread.sleep(wait);
    }
    else
    {
        //Time to big game will slow down
    }                           
} …
Run Code Online (Sandbox Code Playgroud)

android frame-rate constants opengl-es frame

3
推荐指数
1
解决办法
6171
查看次数

标签 统计

android ×1

constants ×1

frame ×1

frame-rate ×1

opengl-es ×1