超概要!導入からiOS/Android向けビルドまで。超概要!導入からiOS/Android向けビルドまで。2013.11.29最近ぐいぐいきているCocos2d-xについて調べました。Cocos2d-xは、マルチプラットフォームの2Dゲームフレームワークです。マルチプラットフォームのゲームフレームワークというとUnityも有名ですが、最近の感覚値では、2Dゲームの場合はCocos2d-xの方が支持されているように思います。読んだ本C++を書けばiPhoneとAndroidに同時に対応できる。Cocos2d-xをインストールする。テンプレートからプロジェクトを作成する。「cocos2dの初期化処理を追ってみる。iPhoneは以前に使っていたので、cocos2d自体の仕様はだいたい理解しています。今回は、マルチプラットフォームのCocos2d-xの大枠を知るのが目的です。この本をざーっと読みました。cocos2d-xによるiPhone/AndroidアプリプログラミングガイドC++を書けばiPhoneとAndroidに同時に対応できる。Cocos2d-xの最大の魅力は、ひとつのソースコードから、iPhoneアプリとAndroidアプリを同時に作成できることです。Cocos2d-xは、マルチプラットフォームで動作する言語としてC++を用いています。iPhoneアプリはObjective-Cで書かれ、AndroidアプリはJavaで書かれるので、一見共通の言語で書き上げることは不可能に思われます。C++で、iPhoneアプリ、Androidアプリを同時に書くことができます。iOSについては、Objective-CがC言語の上位互換であるので、C言語はもちろん実行できるのですが、Objective-C++としてObjective-Cに混在させてC++を使うこともできます。Androidについては、JNIによってC/C++で書かれたネイティブコードを実行することができます。C++で書かれたゲームをネイティブコードとして読み込ませれば、JavaベースのAndroidアプリからも実行することができるようになります。Cocos2d-xをインストールする。簡単に書いていきます。バージョンなどは環境依存にあわせて適宜書き換えるなどしてください。2ヶ月前の作業ログを元に書いているので間違えている場所があるかもしれません・・・。NDKをインストールします。SDKのパスはご自身の環境に合わせてください。~/cocos2d-x-2/template/multi-platform-cpp/proj.android/build_native.shテンプレートからプロジェクトを作成する。テンプレートからプロジェクトを作成することができます。cpp作成されたプロジェクトファイル群には、プラットフォームに対して共通のゲーム本体を各Classesディレクトリと、画像などのリソースを格納するResourcesディレクトリと、それを参照するAndroid、iPhone、その他のプロジェクトディレクトリがあります。各プラットフォーム向けのプロジェクトディレクトリiPhoneアプリとして実行iPhone向けのプロジェクトは、proj.iosの中にあります。これを実行するのに必要なのは、Cocos2d-xとXcodeだけです。Worldアプリが実行できます。ここで何が起きているかというと、XcodeはC++をビルドできるので、そのまま実行しているだけです。Androidアプリとして実行proj.androidには、Android向けのプロジェクトがあります。NDKのインストールが必要です。NDKEclipselibcocos2dxというライブラリをEclipseにライブラリプロジェクトとして導入したあと、作成されたCocos2d-xプロジェクトをEclipseで開いてビルドして実行すると、Androidでも実行ができます。NDK用にライブラリ化していて、ResourcesのファイルをAndroidプロジェクトのAssetにしています。それを、libcocos2dxから呼び出してゲームを実行しています。シンプルな構成で良い!どちらの環境で起動しても、参照しているソースコードはClassesディレクトリです。したがって、Xcodeで開発をしたものを、あとでAndroid向けにそのままビルドできるような構造になっています。iPhone向けにビルドする場合にしてもAndroid向けにビルドする場合にしても基本的な技術の組み合わせによってできているのでシンプルで理解しやすいです。EC2のルートパーティションの容量の拡張。iPhoneアプリiOS7でステータスバーを消す。iOS7でステータスバーの挙動が大きく変わり困惑している人も多いはず。ベストプラクティスが掴めておりません。そもそも「ステータスバーって何だ?」という方は、「非エンジニアがエンジニアと会話するためのiPhone用語集」もどうぞ。〜iOS編〜My365は、まずiPhoneアプリとしてリリースすることにしました。iPhoneアプリをリリースしたのはこれが初めてで、勉強しながらの開発となりました。(iPhoneアプリ開発自体では、ヒマボタンという素晴らしいアプリの開発経験があるの...iPhoneアプリiOS向けのユニバーサルでスタティックなframeworkを作るiOS向けのライブラリを提供するのに、framework形式にすると便利です。以前に、iOS向けのframeworkのためのテンプレートについて書きました。EC2にクラスタを構築。Sparkを試しています。SparkをJavaアプリケーションから使う。ここまでは、単一のホストで動作を試していましたが、分散処...NagiosすべてのEC2インスタンスを自動でNagiosの監視下に追加するEC2Nagiosを作りました。EC2でインスタンスを立ち上げたり落としたりするたびにNagiosの監視設定を書き換えるのは面倒です。Autoscalingなどを用いて、自動でインスタンスの起動・停止を繰り返している場合はなおさらです。そこで、EC2インス...iPhoneアプリ落ちないiPhoneアプリが作りたい自分のための、押さえておくべきポイントたくさん。iPhoneアプリは良く落ちる。ランキングで上位に入ったり、話題になったりしているアプリでも落ちる時は落ちる。Localを使って、ローカルでDynamoDBのテストができる環境を構築しました。これ...ビジネスメールの誤送信防止に今すぐインストールすべき!Confirm-Addressアドオン。最近、社外の方とやりとりすることが増えてきて、メールを使う機会も増えてきました。送信数が増えてくると必然的に「うっかり送信先を間違える」なんてことも発生しそうで怖いです。そんなミスを減らすために、送信先をいちいち確認してくれるという、お...Munin全てのEC2インスタンスを自動で監視するEC2Muninを作りました。Servicesは使いたい時に使いたい分だけサーバを起動して使えるのでとても便利です。便利なんですが、インスタンスを起動したり停止したりを繰り返していると、そのつど監視設定を書き換えるのが面倒です。エンジニアは、iPhoneのUIパーツについて「クラス名」という共通言語をもっています。クラス名を言えば、「ああ、あれね」となります。エンジニ...ホームWEB開発アプリ開発Androidアプリkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。日記その他ホーム検索トップサイドバーkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。Handlebars.js2タイトルとURLをコピーしました。