2012-01-13 4 views
0

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

Проблема в том, что каждый раз, когда активность переходит на задний план (через домашнюю или обратно клавишу) и возвращается, 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(); 
    } 
} 

ответ

0

Хорошо установил ее. По-видимому, я забыл называть режиссера резюме(). Добавил это к вышеуказанному коду, и он отлично работает:

@Override 
public void onResume() { 
    super.onResume(); 
    CCDirector.sharedDirector().resume(); 
} 
Смежные вопросы