Framedrops с Cocos2d-android, когато активността на играта се възобнови

Изпробвам някои двигатели за игри за 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();
    }
}

person user287351    schedule 13.01.2012    source източник


Отговори (1)


Добре, поправи го. Явно съм забравил да извикам resume() на директора. Добавих това към горния код и работи добре:

@Override
public void onResume() {
    super.onResume();
    CCDirector.sharedDirector().resume();
}
person user287351    schedule 13.01.2012