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) | 日記 | このブログの読者になる | 更新情報をチェックする

2013年04月18日

[cocos2d]ページのスクロール

ハイスコアの画面。
ランキング画面20130418.PNG

左右にフリックして、LEVEL1 ←→ LEVEL2 ←→ LEVEL3 みたいにスクロールで切り替えたいなーと思って、どう実装するか調べてたら、めっちゃ簡単に出来る方法があった。

cocos2dの拡張ライブラリ、Cocos2d Extensionsなるものをダウンロードして、
その中のCCScrollLayerってやつをプロジェクトに放り込む。


で、使いたいクラスでCCScrollLayer.hをインポートして、
        // ページレイヤーを配列で作成
        NSMutableArray *layerArray = [NSMutableArray array];
        [layerArray addObject:[self viewHighScoreLavel:1]];
        [layerArray addObject:[self viewHighScoreLavel:2]];
        [layerArray addObject:[self viewHighScoreLavel:3]];
        CCScrollLayer *scroller = [[CCScrollLayer alloc] initWithLayers:layerArray widthOffset: 0];
        
        // インジケータ非表示
        scroller.showPagesIndicator = NO;
        
        // レイヤーを表示
        [self addChild:scroller];
これだけでできた。
[self viewHighScoreLavel:1]のメソッドでレイヤーを作成して、戻り値として返してます。 CCScrollLayerの中に、各ページのレイヤーを配列で全部入れると、勝手に上手いことやってくれる。


あと、デフォルトで現在のページ位置を表すインジケーターが表示されるんだけど、
邪魔だったんでshowPagesIndicatorプロパティをNOにしたら消せた。

さすがcocos2d、便利なライブラリがいっぱいあるぜ。
ラベル:cocos2d
posted by ryo4071 at 00:55| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2013年04月16日

[よけるが勝ち]骨組み部分はできた感じ

 現在のゲーム画面。
ゲーム画面20120416.PNG

 新たに敵のグラフィックを描いてみたものの、イマイチ汎用性に欠けるというか。
まあ、気が向いたら書き直そう。


 一応ゲームの骨組みの部分はできて、一通り遊べる形にはなった。
スキルボタン(下のStop)が安っぽいのは直したいとか、黒枠の部分を、ゲームっぽい枠にしたいとか、直したい点はまだまだあるけど。
あとは理想(というか妄想)として考えてる機能をどれだけ実装できるかっていう。

 練習の為に作り始めたゲームだけど、作り始めるとこんな機能も実装したい、あんな要素も入れたいって膨らみすぎて収拾つかなくなる。
 昔RPGツクールでゲーム作ってる時から、凝った事しようとして挫折して、結局全部投げるタイプだった。
ちゃんと完成させないと。


 他の方のゲームを色々落としてやりまくって、やっぱりコンボ的要素が欲しいなーと思った。
ただよけるだけじゃなくて、何か繋げてコンボにできる要素。
ギリギリで避ける(というかある程度敵に近づく)とポイントが入って、連続でギリギリで避けるとポイントがどんどん増えていく、とかどーだろう。


 あとモンスターの種類増やして、モンスター毎にいろんな動きのパターンつけて、モンスター図鑑も実装したい。
っていうのは避けるだけのゲームには豪華すぎるだろうか・・・。

 他、ショップ的な要素はなんとか入れる予定。
ゲームのスコアに応じてゴールド入手して、アイテムが買える的な。
「次から3ゲーム、1回ぶつかっても大丈夫」アイテムとか。

 GameCenterのランキング対応と、twitterボタンもやっぱ外せないかなあ。
まだまだ作る部分はいっぱいある。
posted by ryo4071 at 23:01| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

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