【admob】admobのバナーをiOSで実装してみた。【cocos2d-x】

今回もたくさんの先駆者様のサイトに助けられました。
しかしながらcocos2d-xのバージョンの違いや、
情報が1年以上前ということもあって少し付け足しが必要でしたので備忘録として残します。
ちなみに私のcocos2d-xのバージョンは9です。(次のアプリでは最新にします。)
参考サイト:Cocos2d-x 3.5 AdMobのバナー広告を実装する(iOS, Android)

プラス、私が実施したこと

1.Frameworkを追加
以下のFrameworkが足りないぞと怒られました。
CoreVideo
CFNetwork
GLKit
Mediaplayer

参考サイト:Xcodeでライブラリリンク時に発生するエラーに対応するframework

2.ソース修正
以下サイト様の要素も加えて、さらにimport部分の修正とテストデバイス用のコードを追加
参考サイト:Cocos2d-xにAdMob (バナー) を導入する方法 – iOS編

iOSのバナーは比較的簡単でした。。。(つづく)

【Xcode】メモリリークを回避せよ【cocos2d-x】

なんのエラーもでない。でもアプリは落ちる。

先日リリースした、【脱出ゲーム】三毛猫ルームズは
シミュレータでは特に落ちなかった。
実機テストでも特に落ちることはなかった。

しかし、レビューで「とにかく落ちる」とコメントを頂きました。
コメントを頂いてからいろいろ試した結果、
どうやら他のアプリを立ち上げていたりすると
メモリの逼迫がアプリの落ちる原因でした。
※想定外の動作もメモリの逼迫を解消したところ治りました。

このメモリエラーは、エラーの箇所を特定するのが難しく
処理のどこがいけないのか全然わかりませんでした。

ネットでググったところ
Xcodeにそもそも備わっている
「Enable Guard Malloc」を使用してエラーを特定するのだとか
。。。知らんかった

■やり方
1.Xcodeで対象のプロジェクトを開いたら”Edit Scheme”を開く
※Xcodeのメニューから”Product” → “Scheme” → “Edit Scheme..”を選択
menu1

2.左側で”Test”を選択し、”Enable Guard Malloc”にチェックを入れ,
“Close”ボタンを押下
mike3

これだけ

あとは、シミュレータで動作確認をすれば
メモリリークを引き起こしそうな部分でエラーを出力してくれます。
実機テストでは機能しないようです。

【cocos2d-x】”\n”で改行できない【Label】

DB(SQLite)からデータを変数に格納して、
Labelに文字列を表示してました。

この文字列に自分の意思で改行をいれようと、
“\n”を改行したい部分に入れてたのですがうまくいきません。

ちょっとネットを検索した結果、以下のサイトを見つけました。
plistの改行文字Add Star

上記サイトではplistからのデータとかいてあるのですが
どうやらDBから抽出した文字列もあてはまるようです。
DB上では“\n”と入力してますが、プログラム的に“”\n””と認識しているようです。

抽出した文字列を、”\\n”から”\n”へ置換する処理を追加してから
Labelに表示したらできました。
めでたしめでたし。

置換関数を作成するときに参照
文字列を置換する(2)

その他
C++ってちょっと文字列操作めんどくさい。
文字列の置換ぐらい準備しておいてほしい。

・・・文字列の置換ぐらい自分で書けってことなんでしょうけど…。

【cocos2d-x】画面解像度とフォルダ追加の注意点

cocos2d-xはiPhoneとAndroid端末の画面サイズに
対応するようにかなり柔軟に作成されています。

さらにバージョン3.9ではAppDelegate.cppに
分岐処理がすでに記載されております。

まずはiPhoneのみ作成してますので、
一部書き換えました。

ここからが本題です。
上記コードで”Resources”配下のフォルダにアクセス出来るようになります。

が、

フォルダの追加の仕方を間違うと想定通りにファイルを選択できません。
フォルダの追加時の画面で、以下のチェックをいれてください。

スクリーンショット_H28_02_26_6_18

上記チェックをいれて追加すると、以下のように
xcode上でフォルダが青く表示されます

folders

ちなみに、”Added folders”で”Create groups”にチェックをいれしまうと
追加したフォルダにパスの設定をしなくても見てしまうため
想定通りに分岐できません。
“common”フォルダはいちいちパスを通さないように
“Create groups”にチェックして追加してます。

【cocos2d-x】マイAppのiOSビルド画面でアイコンがcocos2d-xのデフォルトアイコンになってしまう件【iTunes Connect】

先日、以下のようにつぶやきました。

実機やシミュレータではちゃんと設定したアイコンが表示されるのですが
iTunes Coneectでは以下のように
cocos2d-xのデフォルトのアイコンが表示されてしまいます。
iTunes_Connect

いろいろ試した結果、
ios配下のiconsにあるファイルを削除し、iTunesConnectにアップロードしたところ

Default-667h_2x_png

以下のように反映されました。
iTunes_Connect

【まとめ】
今回アイコンの設定を、Images.xcassetsへドラッグ&ドロップで設定しており
ios/icons配下を確認してませんでした。

iTunesConnectにはアイコンの反映に優先順位があるようなので、
Images.xcassetsでアイコン設定した場合は、
ios/icons配下の画像はすべて削除しないとcocos2d-xでデフォルトで設定されている
画像が反映されてしまうようです。

次回以降気をつけます。