你好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)