Изпробвам някои двигатели за игри за Android и попаднах на cocos2d-android-1. Настроих малък пример, който почти не прави нищо, освен да покаже FPS брояч за начало.
Проблемът е, че всеки път, когато активността отиде на заден план (чрез клавиша за начало или връщане) и се върне, FPS пада много. При първо стартиране са ми около 60 (HTC Desire), след подновяване на активността остават под 10.
Дейността е фиксирана на пейзаж в манифеста и използва @android:style/Theme.Black.NoTitleBar.Fullscreen
за активиране на режим на цял екран.
Когато спра приложението от менюто с приложения в настройките на устройството, то нулира всичко. Първото стартиране отново получава 60 fps, следващото стартиране също пада.
Как мога да поправя това?
Ето малка работна извадка:
public class MainActivity extends Activity {
private CCGLSurfaceView glSurfaceView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
glSurfaceView = new CCGLSurfaceView(this);
setContentView(glSurfaceView);
}
@Override
public void onStart() {
super.onStart();
CCDirector.sharedDirector().attachInView(glSurfaceView);
CCDirector.sharedDirector().setDisplayFPS(true);
}
@Override
public void onPause() {
super.onPause();
CCDirector.sharedDirector().pause();
}
}