読者です 読者をやめる 読者になる 読者になる

フニゲの開発日記

Electronとか...

Cocos2d-xをiOSのUIViewControllerの中で動かす


 仕事でかなり困ったのでメモ。

 とりあえず、いつも頼りになるRay Wenderlichさんのサンプルを追いかければだいたいできるのだが、残念ながらこれはCocos2d-iPhone用で、Cocos2d-xとは細かい所が違う。
 How To Integrate Cocos2D and UIKit - Ray Wenderlich

 あと新しめの日本語の記事。これはv3系。
 the doritostic blog: UIViewController の上で Cocos2d-x を動かす

// RootViewController.mm

- (void)viewDidLoad {
    [super viewDidLoad];

    EAGLView *glView = [EAGLView viewWithFrame:[表示領域のサイズ]];
    self.view = glView;
    cocos2d::CCApplication::sharedApplication()->run();
}
...
- (void)viewDidUnload {
    cocos2d::CCApplication::sharedDirector()->end();
    [super viewDidUnload];
}

 viewDidLoadのときself.view.boundsに入っているサイズは実際の表示領域のサイズと違うことがあるので注意。
 まあ、動かすのは簡単なんだけど(どうしてこれで動くのかはよくわからないんだけど)、安全な終了方法がはっきりしない。CCApplication::sharedDirector()->end()をいろんな所に置いて試すと、クラッシュしたりしなかったりする。

 didReceiveMemoryWarningでviewを解放しないようにしておけば安全か。

- (void)didReceiveMemoryWarning {
    //[super didReceiveMemoryWarning]; メモリ警告を無視
}

 とりあえずこれでごまかしておいて、後でもうちょっと調べることにする。

広告を非表示にする