0

私はアンドロイド用のゲームエンジンをいくつか試していて、cocos2d-android-1に出会いました。最初に FPS カウンターを表示する以外はほとんど何もしない小さな例をセットアップしました。

問題は、アクティビティが (ホーム キーまたは戻るキーを介して) バックグラウンドに移動して戻ってくるたびに、FPS が大幅に低下することです。最初の開始時は、私 (HTC Desire) では約 60 ですが、活動を再開した後は 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();
    }
}
4

1 に答える 1

0

Ok fixed it. Apparently I forgot to call resume() on the director. Added this to the above code and it works fine:

@Override
public void onResume() {
    super.onResume();
    CCDirector.sharedDirector().resume();
}
于 2012-01-13T17:54:29.367 に答える