SupaShin備忘録

無知なPGが日々努力しようとしてみたり、しなかったりするメモ系ブログです

cocos2d-x便利ツール

cocos2d-xでiOSアプリを開発するのであれば使用した方がいい便利ツールがいくつか存在する。
今回は個人的に気になったツールをまとめて置こうと思う。

■CocosBuilder
公式サイト:http://cocosbuilder.com/
Flashのソフトのような使い方ができるみたいです。
レイアウトの調整なんかもやりやすそう。

■LevelHelper
公式サイト:http://www.gamedevhelper.com/levelhelper/
なんかいい感じのツールっぽいのですが、僕の知識ではいまいちよくわかりませんでした。。。
実際に使ってみてから再度レビューを行いたいと思います。

■SpliteHelper
公式サイト:http://www.gamedevhelper.com/spritehelper/
LevelHelperと一緒に使う事で力を発揮するみたいです。
これも実際に使ってみてから再度レビューを行います。

■TexturePacker
公式サイト:http://www.codeandweb.com/texturepacker
ゲームを作る上で画像ファイルを一つの画像ファイルにまとめるテクスチャアトラス化は必須です。
個々の画像を個別に読み込むよりも一つの画像にまとめたほうがGPUの負荷が下がります。
ただこのテクスチャアトラス化。。。。
普通にやろうとするとかなり面倒です。。。
しかも、プログラム側で読み込むのも面倒で、切り取り位置などを計算する必要があったりと色々と面倒なのです。。。。
それをツールで行ってくれるのが「TexturePacker」です。
詳細な使い方などは追ってブログにアップしていきます。

■spine
公式サイト:http://esotericsoftware.com/
ざっくり説明すると、「2Dスケルトンアニメーション」を作成するツールです。
作成するのに必要な物は「pngファイル」「atlasファイル」「jsonファイル」の3つです。
pngファイルは、アニメーションを作るときに用意した各パーツの画像を、まとめたものを使います。
atlasファイルは、まとまった画像データを扱うためのもので、メモリの節約にも一役買います。
jsonファイルは、Spineでつくったボーンや各アニメーションの情報をCocos2D-Xで扱うためのファイルです。
「atlasファイル」の作成で「TexturePacker」を利用するという手もあります。
というか、これがやりたくてTexturePackerを見つけたというw
詳細な使い方などは追ってブログにアップしていきます。

■PhysicsEditor
公式サイト:http://www.codeandweb.com/physicseditor
Box2D アプリを作る時には、b2Body に登録するシェイプデータを作る必要があります。
丸・三角・四角など簡単な形であればいいのですが、複雑な形状になると、グラフィックエディタなどで図形を描いてから、その座標データを読み取ったりしなければなりません。
PhysicsEditor を使うと、その辺の作業が高速化でそうです。

■GlyphDesigner
公式サイト:http://www.71squared.com/glyphdesigner
ビットマップフォントを扱いたいが、一文字ずつPNGに書き出して座標配置するの面倒だな...
そんな問題を解決してくれるのが「GlyphDesigner」です。
出力した.fntファイルと.pngファイルを組み込めば、テキストとして扱ってくれます。

■ParticleDesigner
公式サイト:http://www.71squared.com/particledesigner
カッコイイエフェクトを作成する事ができるツールです。
これを使用したゲームを作れば一気にリッチな表現が可能になりそうです!

■TiledMapEditor
公式サイト:http://www.mapeditor.org/
ドラクエのようなのマップやスパロボ系のSLG風マップを作成できるエディタです。

cocos2d-x Android 開発環境構築

SupaShin備忘録XcodeiOS版を開発する環境が整ったので、今回はAndroid版の環境構築を行おうと思います。
Android SDK(ADT Bundle)のダウンロード
http://developer.android.com/sdk/index.html
上記URLから「Android SDK」の最新版をダウンロード

「Download the SDK -ADT Bundle for Mac-」を押下

「I have read and agree with the above terms and conditions」にチェックを入れ「SDK」をダウンロードします。

ここでは「adt-bundle-mac-x86_64-20130219」をダウンロードしました。
Android NDK をダウンロードする
http://developer.android.com/tools/sdk/ndk/index.html
開発するプラットフォームの「NDK」をダウンロードします。
今回は「Mac OS X 64bit版」を選択します。

「I have read and agree with the above terms and conditions」にチェックを入れ、「NDK」をダウンロードします。
ここでは「android-ndk-r8e.tar.bz2」をダウンロードしました。

ダウンロードした「SDK」「NDK」ファイルは「ダウンロード」ディレクトリに入っています

Android SDK(ADT Bundle) + NDKのインストール
「NDK」は解凍しておきます。
解凍は好きに行ってください。
コマンドの場合のサンプルは下記です。

$ tar -zxvf 「ファイル名」

ダウンロードの中にある「SDK」と「NDK」を、それぞれ適当なディレクトリへとリーネームしてコピーしておきます。
ここでは「アプリケーション」ディレクトリへとコピーするとします
SDK」は「android-sdk
「NDK」は「android-ndk」
にリネームするとします。
コマンドで移動する場合のサンプルは下記です。

$ cp -r /Users/ユーザー名/Downloads/android-ndk-r8e /Applications/android-ndk
$ cp -r /Users/ユーザー名/Downloads/adt-bundle-mac-x86_64-20130219 /Applications/android-sdk

前回でインストールした「cocos2d-x」ディレクトリの中にある、create-android-project.shを編集します。
今回はXcodeで開きました。
そして、NDK_ROOTとSDK_ROOTのパスを変更して保存します。
記事通りにインストールしていれば「Path」は下記となっているはずです。

「cocos2d-x」ディレクトリへのパス
/Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3

「Finder」で移動する場合は下記を参考にしてください。
・「移動」メニューの「フォルダへ移動」を選択
・「Shift」+「Command」+「G」のキーボードショートカット

「NDK_ROOT_LOCAL」と「ANDROID_SDK_ROOT_LOCAL」を修正します。
・NDK_ROOT_LOCAL=>/Applications/android-ndk
ANDROID_SDK_ROOT_LOCAL=>/Applications/android-sdk

ターミナルを起動し、「cocos2d-x」ディレクトリへと移動し「create-android-project.sh」を実行します。

※サンプルコマンド
$ cd /Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3 $ sudo ./create-android-project.sh

3回質問がくるので入力する
Input package path. For example: org.cocos2dx.example(パッケージパスを入力)
例)com.test.Myproject

input target id:(どのAPIバージョンで作るか→参考の番号が表示されるので選択する)
例)20
※選択するバージョンが古いとOPENGLの部分でエラーが出るのでAPI15ぐらいで作成してみると回避できる

input your project name:(プロジェクト名称を入力)
例)Myproject

上記の質問に答えると「cocos2d-xディレクトリ」に「Android用プロジェクト」が生成されています。
今回の場合だと「Myproject」が生成されているはずです。

「Myproject」内の「proj.android」ディレクトリを、先ほど作ったiOS用のプロジェクト「cocos2d-x」に、下記のように移動させます。
記事通りに作成している場合iOS用プロジェクトはデスクトップの「cocos2d-x」となっているはずですので、
今回は「/Users/ユーザー名/Desktop/cocos2d-x/cocos2d-x」が移動先となります。

「cocos2d-x」ディレクトリの「cocos2dx/platform/android/java/src/org/cocos2dx/lib」ディレクトリをコピーし、
iOS用プロジェクトに「cocos2d-x/cocos2d-x/proj.android/src/org/cocos2dx/lib」となるようにペーストします。
今回の例でいうと
/Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/android/java/src/org/cocos2dx/lib

/Users/ユーザー名/Desktop/cocos2d-x/cocos2d-x/proj.android/src/org/cocos2dx/lib
となるようにペーストします。

「proj.android」内の「AndroidManifest.xml」を開き、「minSdkVersion = 10」に変更して保存します。
今回ファイルは「Xcode」で開いています。

次にproj.android内のbuild_native.shを開き、以下の場所にコードを追加&変更します。
「NDK_ROOT」と「COCOS2DX_ROOT」のパスを指定してあげるだけです。
ここでは
「NDK_ROOT」は「/Applications/android-ndk」
「COCOS2DX_ROOT」は「/Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3」
とします。

cocos2d-x 2.1.3 iOS版 の環境を整える

SupaShin備忘録Xcodeのインストールが完了したので、今回はcocos2d-xの環境を整えていきます。
■cocos2d-xのダウンロードhttp://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download
上記URLから「cocos2d-x」の2.13(現時点最新版)をダウンロード

ダウンロードしたファイル(今回はcocos2d-2.1rc0-x-2.1.3.zip)を任意のディレクトリへ展開
ここでは「/Users/ユーザー名/COCOS2DX」へ展開したとする

※流れのコマンドサンプル
$ mkdir /Users/ユーザー名/COCOS2DX←ディレクトリ作成
$ chmod 700 /Users/ユーザー名/COCOS2DX←ディレクトリ権限変更
$ cd /Users/ユーザー名/COCOS2DX←ディレクトリ移動
$ cp cocos2d-2.1rc0-x-2.1.3.zip /Users/ユーザー名/COCOS2DX←ファイルコピー
$ unzip cocos2d-2.1rc0-x-2.1.3.zip←解凍

上記コマンドを実行後、「/Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3」があるはずです

Xcode用のテンプレートインストール
ターミナルを開き、「cocos2d-2.1rc0-x-2.1.3」フォルダの中に移動、Xcode用のテンプレートインストールコマンドを実行します。
古いバージョンをすでにインストール済みの場合は、-fオプションをつけることで上書きインストールになります。

※流れのコマンドサンプル
$ cd /Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3←ディレクトリ移動

$ sudo ./install-templates-xcode.sh←新規Xcodeテンプレートインストール
or
$ sudo ./install-templates-xcode.sh -f←上書きXcodeテンプレートインストール


インストール中にエラーが発生しなければOK。
成功例)

■cocos2d-xインストール確認
確認の為にXcodeを起動し、プロジェクト作成で「cocos2d-x」が選択できるようになっているか確認します。

Xcodeを起動して、iOS向けのプロジェクトを作成します。
「Create a new Xcode Project」ボタンを押下します。

ここで「cocos2d-x」が選択できるようになっていればインストール成功です。

Xcodeプロジェクトの作成
プロジェクト作成は「Xcode」から行う方法と「コマンド」で行う方法があります。

Xcodeからプロジェクトを作成する場合


「cocos2d-x」を選びます。

「Project Name」、「Company Identifier」、「Device Family」を入力して作成します。
今回は下記とします。
Project Name:SampleCocos2dx
Company Identifier:Sample
Device Family:Universal

適当な場所を選び「Create」を押下。プロジェクトが指定ディレクトリに保存され表示されます。
今回は「デスクトップ」に作成します。

うまく作成できると、「デスクトップ」にディレクトリが作成されます。

とりあえずシュミレータで実行すると動きます。
実行する際にデバイスなどのツールが足りなければインストールしてください。

「Enable Developer Mode on this Mac?」では「Enable」を選択しておけば良いでしょう。

パスワードの入力を求められるのでパスワードを入力してください。

うまくいくとシュミレータが起動します。

また、プロジェクトパスは下記となります。

/Users/ユーザー名/Desktop/SampleCocos2dx

「コマンド」でプロジェクトを作成する場合


■create_project.pyを実行
今回は下記のようにプロジェクトを作成
$ /Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3/tools/project-creator/create_project.py -project SampleCocos2dx -package com.samplecocos2dx -language cpp

下記の場所にプロジェクトが作成されます。

/Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3/tools/project-creator/projects/SampleCocos2dx

プロジェクを作成するにはcreate_project.pyにパラメータ3つ付けて実行することでプロジェクトを作成します。
./create_project.py -project プロジェクト名 -package パッケージ名 -language 言語
※オプション
-project プロジェクト名
-package パッケージ名
-language 言語 (cpp lua javascriptが選択可能)

iOS用のプロジェクトは「/Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3/tools/project-creator/projects/SampleCocos2dx/proj.ios」ディレクトリの中に入っています。
同階層にiOS以外にもAndroidBlackberryのプロジェクトも作られていることがわかります。
マルチプラットフォームなのでAndroidなどの端末でも実行可能で、それらの実行方法は次回以降で試していこうと思います。)
作成したプロジェクトの●●●.projファイルをダブルクリックしてXcodeを立ち上げれば完成。

XcodeのRunを押せばiPhoneでプロジェクトを動作することが出来ます。
実行する際にデバイスなどのツールが足りなければインストールしてください。

「Enable Developer Mode on this Mac?」では「Enable」を選択しておけば良いでしょう。

うまくいくとシュミレータが起動します。

プロジェクトパスは下記となります。

/Users/ユーザー名/COCOS2DX/cocos2d-2.1rc0-x-2.1.3/tools/project-creator/projects/SampleCocos2dx/proj.ios

Xcodeのシュミレータを追加する


Xcodeにシュミレータを追加する場合は「Device」選択から「More Simulators...」を選択します。

全てインストールしても問題ない為、全てインストールします。


■プロジェクトパスについて
プロジェクトパスAndroidの環境を構築する際によく使うので、メモっておくといいでしょう。

Xcode開発環境構築

このページではMac OS X 10.8 MountainLionでの開発環境Xcode、及び、プログラミング演習に必要なgccコマンドのインストールについて情報提供しています。
Apple IDの取得
XcodeMac OS XApp Storeを通じて無償ダウンロード出来ますが、App Storeを利用するためにはApple IDという利用者IDを取得しなければなりません。
ここでは既にApple IDの取得は住んでいるものとします。

App StoreによるXcodeのダウンロード&インストール
自分のApple IDが用意出来たら,アプリケーションフォルダの「App Store.app」を起動します。

この画面の「サインイン」をクリックすると「Apple ID」と「パスワード」の入力を求められますので
作成済みの「Apple ID」と「パスワード」を入力して「サインイン」ボタンをクリックします。

Apple ID」と「パスワード」の組合せが間違ってなければ「App Store」から各種ソフトウエアがダウンロード出来るようになります。
ここで「カテゴリ」タブをクリックし、「開発ツール」カテゴリをクリックします。

ここに「Xcode」アイテムが見つかるはずなので、これをクリックします。

「無料」ボタンをクリックするとインストール処理が始まりますから処理が完了するまで待ちます。
ネットワーク帯域によってはかなり時間が掛かるかも知れません。気長に待ちましょう。

インストールが完了すると「インストール済み」に表示が変わります。

ここでApp Storeから「サインアウト」した後、App Store.appを終了しておきましょう。

Xcodeの起動と追加インストール
XcodeをインストールしただけではC言語実習で使うgccコマンドが使えるようにならないので,追加インストール作業が必要です。

Xcodeの起動


アプリケーションフォルダから「Xcode.app」を起動します。
Xcodeの利用許諾(ライセンス同意契約)が表示されますので、一応一読してからAgreeボタンをクリックします。

「Mobile Device Framework」のインストールを求められるので、「Install」をクリックしてインストール開始します。

MacBookの管理者権限を要求してくるので、自分のMacBookの管理者パスワード(ソフトウェアアップデート時に使うパスワード)を入力してから、「ソフトウエアをインストール」ボタンをクリックします。

インストールが開始されます。

「Mobile Device Framework」のインストールが完了したら、「Start Using Xcode」ボタンをクリックすると「Xcode」が起動します。


gccの追加インストール

Xcodeメニューから「Preferences」を選択します。

「Downloads」タブを選択すると「Command Line Tools」という行に「Install」ボタンあります。

この「Install」ボタンをクリックすると「gcc」コマンドが含まれたパッケージのインストールが開始されます。

「Command Line Tools」がInstalled表示に変われば、無事gccが使えるようになっているはずです。

これでgccコマンドが普通に使えるようになりました。
Preferencesウィンドウを閉じて、Xcode.appを終了して構いません。

iPhone向けアプリ開発などに取り組みたければ、このXcode.appをフルに活用することになりますが、その詳細は各自調べてみてください。

また、「Xcode」をインストールした際に「iOS SDK」なども同時にインストールされています。

Xcodegccの更新
Xcode及びgccは時々更新されて新しいパッケージがリリースされているようです。

XcodeのPreferences画面の「Check and Install Now」ボタンをクリックすると、その時点での最新版がダウンロードされて入れ替えられるようになっています。
時々、Xcodeを起動して最新版がリリースされていないかどうか確認したほうがよいでしょう。
尚、この画面の「Check for and install updates automatically」をチェックしておくと、Xcodeの起動時に最新版の状況を調べて、リリースされていれば自動的にダウンロード・更新を行ってくれるようですので、この機能を使っても良いでしょう。

C言語まとめ

C言語まとめ


C言語は関数が集まって作られているので、「関数型言語」と言葉が用いられる事がよくある。

関数の構造

型名 関数名(引数){処理}
例)
int main(void){処理}

コンパイル

C言語を「コンピュータ向きの言語に翻訳」する作業


C言語を「コンピュータ向きの言語に翻訳」するソフト

main関数について

C言語では、「main関数」が1番始めに動作する為、「main関数」がなければそのプログラムは動作しない。
極端にいえば「main関数」だけあればそのプログラムは動作する。

トークン

C言語のプログラムを分解した際に最小の単位は「トークン」となります。
下記のプログラムを「トークン」毎に分解すると、
====[サンプルプログラム]====
int main(void) {return 0;}
==============================
下記の用になります。
====[トークン分割]====
int
main
(
void
)
{
return
0
;
}
========================

フリーフォーマット

C言語は、「フリーフォーマット」、つまり、自由書式です。
プログラムの書き方の制限がほとんどないので、自由な書き方で書くことが出来ます。
明確なルールはたった1つのみで
「トークン同士をつなげて書いてはいけない」と言うことです。
ただし、「記号はつなげて書いても良い」となっています。
例として、下記のように書いてはいけません。
====[例]====
○:int main(void) {return 0;}
×:intmain(void){return 0;}
==============