0

解決策が見つからない大きな問題を抱えているので、助けを求めています。

私は複数の小さなアプリを含むプロジェクトに取り組んでいます.それらのほとんどはUIKitで作成され、それらのほとんどはいくつかのヘルパー関数の助けを借りてopenGL ES 1.0/1.1(不明)で作成されました. 衝突検出とアニメーションを必要とするいくつかのゲームを開発しなければならなかったので、これには cocos2d が適していると思いました。

cocos2d 2.0をインポートして機能させることができました。メニューからゲームを選択すると、ディレクターとcocos2dシーンが開始され、終了したいときに[_director end]を呼び出すと、メニューに戻ります。これも作成されていますopenGL ESで。

問題は、ほとんどランダムに発生することがあるということです。ディレクター エンド コールで 0x500 GL エラーが発生し、メニューが白くなりますが、タッチにはまだ応答します。

これは、この問題を修正しようとしている 3 日目です。これが私が試したことです: - cocos2d 2.0 は open GL ES 2.0 を使用し、私のメニューは GL ES 1.0 だったので、それらの間の競合だと思ったので、cocos2d 1.x を使用しましたが、それはさらに多くの問題を引き起こし、競合するべきではありませんcocos2d シーンが画面に表示されているときと同様に、メニューの glview は一時停止しています。

  • cocos2d を起動するたびに cocos2d_debug を有効にすると、これらのエラーも発生します。

    cocos2d: 表面サイズ: 0x0

    cocos2d: 完全なフレームバッファ オブジェクト 0x0 の作成に失敗しました

私は文字通り、ウェブでできることはすべて試しました。

cocos2dを実行/閉じるために使用しているコードは次のとおりです

// start cocos2d
    _director = (CCDirectorIOS*)[CCDirector sharedDirector];
    CCGLView *glView = [CCGLView viewWithFrame:CGRectMake(0, 0, 320, 480)
                                     pixelFormat:kEAGLColorFormatRGBA8
                                     depthFormat:0 /* GL_DEPTH_COMPONENT24_OES */               
                              preserveBackbuffer:NO                                             
                                      sharegroup:nil                                                
                                   multiSampling:NO                                         
                                 numberOfSamples:0
   [_director setView:glView];
   [_director setDelegate:self];
   [[_delegate glViewAccess] addSubview:glView]; // the glviewacces is the app menu select view


//stop cocos2d
   [_director end];

   // this call restarts the app menu select view update and draw functions and 
   // releases the current instance of the object used to start cocos2d, 
   // releasing the cocos2d scene as well
   [_delegate unloadApplication]; 
4

1 に答える 1

0

まず、OpenGL v1.1 と 2.0 のコードを混在させないでください。小さな子猫死ぬでしょう。

次に、呼び出さないでください[director end]。毎回 cocos2d を完全にシャットダウンする必要はなく、単に実行stopAnimationstartAnimationて cocos2d を一時停止してから再開する必要があります。呼び出し側は十分にテストされておらず、そうすると多くの問題が発生する可能性があります。

それでも問題が解決しない場合は、アプリで cocos2d をセットアップおよびシャットダウンする方法のコードを投稿して、さらにヘルプを得てください。

于 2013-03-14T11:37:40.090 に答える