2013年04月19日

[cocos2d]広告(NendSDK)導入

 広告を導入しました。
どれにしたらいいのか分からなかったので、AppBankを使う事に。

タイトル画面20130419.PNG
しかし広告を導入するだけでこれほど苦労するとは・・・。


■詰まり1:まず表示の仕方がわからん!
 マニュアルを見ると、UIViewにaddSubviewして表示させてるんだけど、
フレームワークcocos2dでどうすればaddSubview出来るのかわからんくて、詰まった。
いろいろ調べて、現在のCCLayerじゃなくて、CCDirectorに対してaddSubviewすればいいらしい。
[[[CCDirector sharedDirector] openGLView] addSubview:soubiScrollView];
これで出来るらしい。

 ところが、openGLViewで警告が出た。
基本英語でエラー出るからぱっと見でわからんから苦労する。
どうやらcocos2dのバージョンがあがって、削除された(される予定?)仕様らしい。

[[[CCDirector sharedDirector] view] addSubview:self.nadView];
にして、解決。


■詰まり2:消しかたがわからん
 [[CCDirector sharedDirector] view]に対してViewを追加すると、現時点の画面じゃなくてアプリケーション全体に対して影響を与えるので、別シーンに遷移しても広告が出っぱなし。
 ゲーム画面は広告を出さないつもりなので、ゲームシーンに入ったら広告は消したいんだけど、消しかたがマニュアルに書いてない・・・
 「Hidden」とかいうプロパティをみっけたのでYESを入れてみたけど、非表示にならない。
 仕方ないので、View自体をremoveFromSuperviewで[[CCDirector sharedDirector] view]から消すようにしたけど、正しい方法なのかわからない。
まあ今のところちゃんと動いてるし大丈夫かな・・・

■詰まり3:落ちる
 60秒で広告をリロードして更新するんだけど、その時に落ちる。
原因が全然わからんかったので、半ばお手上げ状態だったけど、マニュアルをよく見てみたら気になる事が。
「dealloc 時には、必ず delegate プロパティに nil をセットしてからリリースを行うようにしてください。」
書いてある通りにdeallocを継承して
- (void) dealloc {
    [self.nadView setDelegate:nil]; // delegate に nil をセット
    [self.nadView release];
    self.nadView = nil;
    [super dealloc];
}
こうしたら、ようやく直った。

 やっぱりマニュアルはちゃんと読まなきゃダメだね。
ちなみにreleace処理の前に、[super dealloc]を持ってきても落ちる。
そこでもプチ詰まりした。


 そんな感じで、とりあえず現時点ではちゃんと動くようになった。

 今日は広告表示だけで終わってしまった。
今週の土日こそはちょっと頑張って作ろう。
posted by ryo4071 at 02:13| Comment(1) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
無理あなたの説明を聞いてもわけわからん。

やっぱ広告あきらめて販売に走ろうかな。
Posted by だめ at 2014年06月03日 13:56
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。