前回のエントリーに引き続き、ダンジョンやマップ内での仕掛けを作成しています。今囘は「爆弾を使えば、進める場所ができる」というアクションRPGによくある処理を考えます。これは前回のエントリーに引き続きTiledのタイルレイアーをうまく使い実装しました。
Tiled
cocos2dで利用できるマップを簡単に作成できる「Tiled」を利用しています。 Tiled Map Editor
タイルマップの設置
壁が破壊された後に出てくるタイルマップを先に考えます。 赤枠の部分を見ていただきたいのですが、入り口と画面を移動させるオブジェクトを仕込んでおきます。
壊れる壁を設置
先ほどのレイアーの上に、爆弾が当たると消えるタイルレイアーを設置します。 レイアーの順番を一番上に持ってくれば、下記のように覆われます。
cocos2dでの処理
タイルマップが用意出来れば、後はCCTMXTiledMapクラス内で爆弾が爆発した時に先程のタイルレイアーが消えるような処理をしてあげます。 具体的にはこんな感じの流れになります。
注意点
このやり方の注意点はレイアーがすべて消えてしまうので破壊できる壁は位置画面に一つだけです。 今回はタイルレイアーを使いましたが、オブジェクトレイアーを使い別途「壊れる壁」のクラスを作れば複数で同じような処理が可能だと思います。
今囘私がタイルレイアーを利用したのは、マップの重なりが簡単にできるからです。 オブジェクトを利用するにはTiledでの場所の調節がとてもシビアで難しいです。