1

私は MapKit フレームワークと Cocos2D v2.0 ライブラリを使用してゲームに取り組んできました: MKMapView の上に Cocos2d によって管理される透明な OpenGL ビュー (EAGLView) を表示します。これは大規模なプロジェクトであり、これまで iOS クライアントだけで 1 人年を超えています。

スムーズで同期された Cocos2d レイヤーとマップのパンとズームを使用するために、ccConfig.h (CC_DIRECTOR_IOS_USE_BACKGROUND_THREAD) でバックグラウンド スレッド スイッチを有効にします。最後の iOS 6 アップデートの前は、すべて問題ありませんでした。しかし、iOS 6 では、CCGLView の swapBuffers メソッドでアプリがクラッシュし、ここで不正なアクセスが発生します。

[context_presentRenderbuffer:GL_RENDERBUFFER]

マルチスレッドとOpenGLに関係しているのではないかと思います。バックグラウンド スイッチがオンで、MKMapView を使用している場合にのみ発生します。

私はすでにマップを使用して、cocos のバックグラウンド スレッドを有効にせずに試しました。マップを使用せずにバックグラウンド スレッドで cocos も試しましたが、クラッシュはありませんでした。

ありがとう、

4

0 に答える 0