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

Я пробовал некоторые игровые движки для Android и наткнулся на cocos2d-android-1. Я создал небольшой пример, который практически ничего не делает, кроме как показывает счетчик FPS для начала.

Проблема в том, что каждый раз, когда активность переходит в фоновый режим (с помощью клавиши home или back) и возвращается, FPS сильно падает. При первом запуске им около 60 (HTC Desire), после возобновления активности они остаются ниже 10.

Действие фиксируется в ландшафте в манифесте и использует @android:style/Theme.Black.NoTitleBar.Fullscreen включить полноэкранный режим.

Когда я останавливаю приложение из меню приложений в настройках устройства, оно сбрасывает все. Первый запуск снова получает 60 кадров в секунду, следующий запуск тоже падает.

Как я могу это исправить?

Вот небольшой рабочий образец:

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();
    }
}

1 ответ

Решение

ОК исправил это. Видимо я забыл позвонить возобновить () на директора. Добавил это в приведенный выше код, и он отлично работает:

@Override
public void onResume() {
    super.onResume();
    CCDirector.sharedDirector().resume();
}
Другие вопросы по тегам