注:これを適切に修正するのを手伝ってくれる人は誰でも、100ポイントの賞金を獲得できます!!!
私のアプリケーションでは、UIKitとCocos2Dを一緒にミキシングしており、addSubviewとremoveFromSuperviewの呼び出しを使用していくつかの単純なカスタムビューアニメーションを実行しています。最近、Cocos2Dで簡単に処理できる複雑なUIKitコードを取り除くために、アプリに別のCCSceneを追加する必要がありました。だから私は私のアプリにベースビューを持っています、それはそれにいくつかのボタンがあるUIViewControllerです。これらのボタンの後ろには、Cocos2Dが何でも実行するCCGLViewがあります。それはうまくいきます。次に、 2番目のViewControllerに移動したいとき(これをゲームビューと呼びましょう)ビューアニメーションを実行した後、viewdidloadが呼び出され(ディレクターの初期化は2番目のCCScene用です)、何も起こらないか、コンソールで以下のようなエラーが発生します。私の元のプロジェクトでは、以下のエラーが発生しますが、このサンプルプロジェクトでは何も起こりません。これらはエラーです:
OpenGL error 0x0501 in DrawSolidPolygon 104
OpenGL error 0x0502 in DrawSolidPolygon 104
OpenGL error 0x0501 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0502 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0502 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0501 in -[CCParticleSystemQuad postStep] 411
OpenGL error 0x0506 in -[CCSprite draw] 532
OpenGL error 0x0502 in -[CCParticleSystemQuad draw] 434
OpenGL error 0x0502 in -[CCSprite draw] 532
OpenGL error 0x0502 in -[CCSprite draw] 532
元のプロジェクトで1つのシーンがあったとき、このようなことは何も起こりませんでしたが、2つのCCScenesを使用している場合にのみ発生します。したがって、サンプルプロジェクトのコードは、私の元のプロジェクトのほとんどのコピーであるため、そこに何か問題があると、ここで問題を修正し、OpenGLエラーを取り除くことができます。
さらに数時間テストして情報を収集した後、私の問題はiOSと複数のOpenGLビューに似ているようです。私はこのリンクも見ました:http://gamesfromwithin.com/using-multiple-opengl-views-and-uikit。ただし、Cocos2Dに関連付ける方法がわからないため、これらのリンクはどちらも私には意味がありません。この問題全体がCocos2Dの現在のバージョンの制限だと思いますが、誰かが私のプロジェクトをダウンロードして、過去2つのリンクの修正をプロジェクトに適用し、完全に修正できれば、それは素晴らしいことであり、私のすべての問題を修正するでしょう!
これで、私のプロジェクトのCocos2Dのバージョンは、2.0バージョンでダウンロードできる最新のバージョンになりました。誰かがプロジェクトをダウンロードして、私が間違っていることを確認するのに十分な人がいれば、これは私と私のような問題を経験している他の人にとって問題を解決すると思います。
以下のリンクは、私の問題のあるサンプルプロジェクトのダウンロードリンクです: http ://www.gogofile.com/Default.aspx?p = sc&ID = 634818635814123750_4340
9/3/12の時点で更新されています。現在、iOS用のCocos2Dの主な作成者である@riqに連絡することを考えています。ただし、そうする前に、CCGLViewを1つだけにする方法はなく、技術的には2つのビューを使用せず、コントローラー間で1つの共有ビューになるため、任意のUIViewControllerに配置できることを誰もが確信しています。この方法は可能ですか?