ゲーム開発日誌part17 爆弾で壁が破壊される処理

前回のエントリーに引き続き、ダンジョンやマップ内での仕掛けを作成しています。今囘は「爆弾を使えば、進める場所ができる」というアクションRPGによくある処理を考えます。これは前回のエントリーに引き続きTiledのタイルレイアーをうまく使い実装しました。

Tiled

cocos2dで利用できるマップを簡単に作成できる「Tiled」を利用しています。 Tiled Map Editor

タイルマップの設置

壁が破壊された後に出てくるタイルマップを先に考えます。 赤枠の部分を見ていただきたいのですが、入り口と画面を移動させるオブジェクトを仕込んでおきます。 2012 5 28 6665 スクリーンショット 2012 05 28 16 39 30

壊れる壁を設置

先ほどのレイアーの上に、爆弾が当たると消えるタイルレイアーを設置します。 レイアーの順番を一番上に持ってくれば、下記のように覆われます。 2012 5 28 OOLDD

2012 5 28 RRDD

cocos2dでの処理

タイルマップが用意出来れば、後はCCTMXTiledMapクラス内で爆弾が爆発した時に先程のタイルレイアーが消えるような処理をしてあげます。 具体的にはこんな感じの流れになります。

注意点

このやり方の注意点はレイアーがすべて消えてしまうので破壊できる壁は位置画面に一つだけです。 今回はタイルレイアーを使いましたが、オブジェクトレイアーを使い別途「壊れる壁」のクラスを作れば複数で同じような処理が可能だと思います。

今囘私がタイルレイアーを利用したのは、マップの重なりが簡単にできるからです。 オブジェクトを利用するにはTiledでの場所の調節がとてもシビアで難しいです。

デモ動画