基本に立ち返るために、cocos2d-xによるiPhone/Androidアプリプログラミングガイドを読み直しています。 時間を置いて見返してみると、第1章から内容がとてもむずかしく感じました。 これは、C++の部分がよくわかっていないからです。
今回は、この本のChapter2から意味がよくわからないモノを実際にどういうものなのか調べてみました。
cocos2d-xによるiPhone/Androidアプリプログラミングガイド 清水 友晶 マイナビ 売り上げランキング : 30109 Amazonで詳しく見る |
タグ
タグをまとめて管理する際にはenum(列挙型)を使うと楽です。 下記の例では、一番上が0。下に行くごとに+1されていきます。
[c] enum myTag{
kTagPlayer, kTagEnemy,
}
[/c]
アクセッサ
private メンバ変数に外部からアクセスするためには、アクセッサを使います。
CC_SYNTHESIZE_READONLY
cocos2dxにあるマクロ定義で、アクセッサを作成することができるみたいです。
[c]
//このように定義する CC_SYNTHESIZE_READONLY(型,protectes変数,関数名);
//これと同じ意味 protected:
型 protected変数;
public:
virtual 型 get+関数名(void) const {return protected変数;}
[/c]
おそらく、protected変数を外部から利用ができる。 ただ、これをなぜ使うか、どういう場合に使うのかはよくわからない。
【参考】
std::map
array(配列)やDictionary(辞書)ような感じで利用できるのかも。
予めどの型(クラス)で利用するかを登録する必要がある。
例えば、
[c]
std::map
//登録 mapTest[int型] = int型;
//取り出し int hogehoge = mapTest[int型];
[/c]
色々な型の変数が格納できるのが便利なのかな? こちらも実際の使い道がよくわかりません。
【参考】
std::list
指定した型の変数を格納でき「追加」「削除」ができます。 「ソート」「連結」などもできます。
調べた所、特定の変数だけを取り出すことができない。
int型なら、数字の順番として利用することができる。 例 [c]
list
list
}
[/c]
【参考】
ccsf()
これは、独自に設定したマクロ定義です。 createWithFormat()から、const charを返しています。
[c]
define ccsf(…)CCString::createWithFormat(VA_ARGS) -> getCSting()
[/c]
マクロ定義 […] -> __VA_ARGS__
マクロ定義では、(…)点3つが、VA_ARGSにそのまま移動します。
実際に新しく定義する際にこれを利用すると便利そうです。
【参考】 プログラミング言語 C の新機能
最後に
まったくプログラミングをしたことがない人にとって、この本は難しいのではないかと感じました。 cocos2dを触って、なおかつケームを何本か作ってきた私でも、複雑に感じています。 もう少しやさしい本があってもいいのではないかと思いました。
引き続きChapter3を読んでいきたいと思います。