MACアプリをCocos2Dxで作る

macのアプリ開発を調べて出てくるのは、「macを使ったスマホアプリ」の作り方ばかりで
本当にmac用のアプリをCocosとxcodeで作れるのか怪しくなってくる。とりあえずadkとか、ipkとか
スマホアプリの実行形式に関わる記載の「ない」ページを検索しても見つからないので、諦めて
cocos2dのページから辿っていくと普通に英語ページが見つかった。
mac用のアプリをxcodeでコンパイルする方法が出ていた、しかもすげえシンプル。

ここに詳しく書いてある
http://www.cocos2d-x.org/wiki/How_to_run_cpp-tests_on_Mac_OS_X

とりあえず言っておくと開発するだけなら、以下の点に留意。

  • macがいる
  • プロビジョニングファイルは必要ない
  • お金もかからない(起動しない、転送できないのがコレのせいかもと疑ってた)
  • Cocos2Dxのライブラリは別途コンパイルしてライブラリとしてリンクできる準備を「自分でする」
    • とは言ってもビルドボタンを押すだけ
    • どのプロジェクト用のどのボタンを押すのかとまどうだけ
  • ビルドに成功、ライブラリのリンクに成功した後は、実行するプロジェクトを設定しなくてはならない

Mac環境

MacBook Air(13inch Early2015)
プロセッサ 2.2GHz intel Core i7
メモリ 8GB
OSX El Capital
XCode Version7.3,1

実行してみる

cocos2d-x/build の中の「cocos2d_tests.xcodeproj」を起動してみるとxCodeが立ち上がってプロジェクトが
読み込まれた。

続いて、ターゲットマシンを設定してやる
001.png

プレイマークを押して実行開始!
002.png

コンパイルに時間がかかるが問題なくビルド終了。続けてアプリが起動する!

やったー動いたー!そしてステップ実行もできる、問題ない。あれこんなにあっさり動いていいのかしら?
Androidの時にあれだけ苦労したのにおかしいな?ソースの改変、コンパイル、ターゲットへの実行までの手順を確認。
だいたいわかった。xcodeに慣れておけば、デバッグもいつものVCで行っていたステップイン、アウト、オーバーも問題ない。

controller.cpp

AppDelegate::applicationDidFinishLaunching()
{
 new RootTests( );
}

ANDROIDの時と同じく、この関数から初期化されてるのを確認

実行する時のターゲットをiPhone6sにしたらそれだけでiPhoneシミュレータが起動して同じものが動く。
最初は、macのものがそのまま動いてるんじゃないかとすら疑ったが、画面のスクロールの操作がフリックからドラッグに変わったので間違いなさそう。fPSも60から40程度に落ちていた。とてもCocosらしい。期待していた通りの簡単さだった。

空のプロジェクトが欲しくなってくる

今のサンプルプロジェクトはそれなりに規模が大きい。Androidの時にあったHelloWorldScene.cppはどこだ?

/Users/ragi/Desktop/cocos/cocos2d-x-3/tests/cpp-empty-test

いろんなところにあったが、ここっぽい。この「cpp-empty-test」の下に各種プラットフォームのプロジェクトファイルがあった。Androidの時と同じ。しかし、xcodeのプロジェクトファイルがない!?slnファイルとかの別プラットフォームのものはあれども、iOS/macで使えるxcodeファイルがない。しかしtemplates-defaultフォルダに発見。なんだ?テンプレートって意味がわからないがとりあえず、、、、

/Users/ragi/Desktop/cocos/cocos2d-x-3/templates/cpp-template-default/proj.ios_mac

起動してみる。xcodeが立ち上がる。コンパイルすると、cocos2d.hがないと言われてビルド失敗。
うむむ、そうか!templateフォルダにあるものって、自分でプロジェクトを作る時のコピー元なのでは!?と思った。
ということは、Androidの時と同じく、cocos newみたいなことをコマンドでしなくてはならないような気がする。
パスの設定とか、その辺はどうするのか?macのターミナルとの格闘を予感してガクブル。

新規プロジェクトはバッチで作る(のはAndroidと同じCocosの作法)

そういえばAndroidの時に環境変数を設定したことを忘れていたが、当然macでもしてあげる必要があったね。

  • cocos2d-xのフォルダ直下でターミナルを開く
  • フォルダ直下にターミナルを開く簡単な方法
    ./setup.py
    で、設定してやる。AndroidのNDKとかの場所を聞いてくるけど、とりあえず無視でいい。macアプリの開発にndkはいらない。Android版の開発で使用するならパス設定してあげるといいかもしれないけど、本稿ではパス。windowsのシステム環境変数の設定でやったような環境変数の設定はmacではbash_profileという設定ファイルに記載することになるようです。

cocos new!

cocos new プロジェクト名 (フォルダができる) -p net.suplex.プロジェクト名 -l cpp
  • cocosがないって言われてcocos newができない
    • 環境変数を書き換えたので、ターミナルを一度閉じて再度起動すればできるようになってる
    • 分かりやすいbashの設定
  • cocos new に失敗する
    • プロジェクト名のフォルダを先に作ってたら、そこでプロジェクトを作るのをやめちゃうみたい
      $ source ./.bash_profile
      これでbashの設定を反映できるとのこと

プロジェクトファイルができたよー

Cocos new でプロジェクトを作ったら、設定したフォルダに念願の「プロジェクト名.xcodeproj」ができた!
起動してみる。

buildには成功しかし・・・?

最初にコンパイルが失敗してしまったがどうもcocos2dのライブラリをコンパイルしていなかったのが問題っぽい
こっちを先にコンパイルしてみる

libcocos2d mac >My mac

Cocos2Dのコンパイルが成功した後はうまくリンクしてくれたみたいだけれども、その後に実行しようとしても
どうしてもターゲットマシンに転送してもらえない、というか実行するためのプレイボタンが消えている。

何をどうしても動かなかったが、Schemeの設定を見るとExecuteの項目が空欄になっていた。
ここを正しく設定することで転送できました!

  • ということで手順。
    build001.png
    プレイボタンの隣のプロジェクト名のところをクリック、Edit Schemeを選択
    build002.png
  • 新しく開いたウインドウのExecuteのところに今のプロジェクトを設定する
    build003.png
  • 起動したーーーーーー!
    build004.png

メモ

・グラントリノ

・フェイク

・ブラックスキャンダル

・サイエンス

添付ファイル: filebuild004.png 192件 [詳細] filebuild003.png 112件 [詳細] filebuild002.png 154件 [詳細] filebuild001.png 172件 [詳細] file002.png 211件 [詳細] file001.png 149件 [詳細]