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