たけぼーの備忘録

暇を持て余した人間の無意味なブログ

cocos2d-xでHelloWordがコンパイルできない

こんにちは、たけぼーです。

最近cocos2d-xに手を出し始めました。
macXcodeを使ってコーディング中です。
今までWindowsを使っていましたが、iOSのプログラミングにはmacが必要ということで移行してきた初心者です。

Xcodeの洗礼

初めてcocosのプロジェクトを作成し、さあコンパイルしてみよう!と意気込んでいたその時!

謎のエラーに見舞われたのです・・・

HelloWorldScene.cppの70行目あたりにある

sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

が赤く表示され、EXC_BAD_ACCESSと表示されています。

What's!? なんじゃこれ!

これがmacの洗礼なのか・・・
なんて思いながら、google先生に聞いてみました。

すると、参照している画像が上の処理を行ったときにメモリに存在しないことが原因である、ということがわかりました。
いやいや待ってくれ。一行前に追加したばかりの画像が次の行で消えているってどういうことなんだ!?

困り果てて諦めようとしていたその時、spriteの文字にカーソルを合わせると、NULLと表示されていることに気づきました。

え!?NULLじゃダメでしょ!

またまたgoogle先生に聞いてみたところ、やっと解決策が見つかりました!
ありがとう、google

コンパイルエラーを治す

これによると、このプロジェクトのbuild Settingsの項目が関係しているらしい!

では、直してみましょう。

プロジェクトのトップに表示されている青マークをクリック
f:id:takebo_blog:20170228171633p:plain
私の場合、プロジェクト名をTestとして作成したため、Testと表示されています。
この中のBuild Settingsをクリックすると、項目がたくさん出てきます。
この中の『All』を選択し、検索欄にmetaと入力することで、Compress PNG Files - Packagingの項目を表示させます。
この中のRemove Text Metadata From PNG Files の項目をNoにしてから再度コンパイルすると、動きました!
f:id:takebo_blog:20170301101358p:plain


これなんのための設定なんだろ、わからん。

まあ、成功したからいいですよね!笑


ではまた。