【cocos2dx】Tiledを利用する際の「タグ」についての注意点

昨日、タイルマップを作成している時に悩んだことを書きます。 cocos2dxでTiledで作成したタイルマップを利用する際の注意点があります。 それは、Tag(タグ)です。

TagがCCTMXLayerに自動的に割り振られる?

おそらくなんですがCCTMXTiledMapクラスを使いタイルマップを利用する際に、CCTMXLayerに自動的にタグが割り振られています

Tiledでは、以下のように複数CCTMXLayerを利用します。 また、PlayerやEnemyなどのオブジェクトも配置できます。

2013-7-9-dds.png

ここからは、自分が検証して間違いないと思うのですが、レイアーには0から順番にタグが割り振られているみたいです。

スクリーンショット 2013 07 09 5 46 3

オブジェクトにタグを付ける時には注意しよう

以上のようなことを考えての注意点は、レイアーではなく、オブジェクト側にあります。 私はPlayerを取り出すために、専用のタグを設置していたのですが、これがレイアーのタグと被ってしまった上手く動作ができていませんでした。 [c]

//このような感じでタグを割り当ててました enum{

kTagEnemy = 1,
kTagItem = 2,
kTagPlayer = 3,
kTagPerson =4,

}; [/c]

ですので、タグを付ける際には、もう少し大きい数字を割り振るなどの工夫が必要です。