時間がかかりましたが、マリオのような「アクションゲーム」が少し前に進みましたので、ブログに載せたいと思います。
今回、実装したこと
マリオ(キャラクター)を大きくした
前回は32*32のキャラクターを利用していましたが、今回は、大きいマリオを作成しました。 デザインは「スーパーマリオブラザーズ3」のマリオを参考にしています。
CCTMXTileMapにオブジェクトを追加した
個別にオブジェクトを作成するのは、とてもメンドクサイので、前回作成したマップ上にオブジェクトを配置しました。 Tiledを利用すれば、このオブジェクトも簡単にマップ上に設置することができます。
今回は、「はてなボックス」と「ブロック」を設置しています。 ともに、下からぶつかった時にそれぞれ特殊なアクションを取るようにしています。 ただ、「はてなボックス」に関しては、アイテムを出す実装はまだできていません。画像が変わるだけです。
マリオを大きくする「スーパーキノコ」を作成した
マリオといえば、「スーパーキノコ」。 大きいマリオを作成したということで、簡単ですがマリオが大きくなるアクションを実装しました。
苦労した点
前回から、時間が空いたように、完成度はまだまだですが、ここまで作成するのにかなり苦労しました。
大きいマリオの衝突判定
大きいマリオにしたことにより、衝突判定がおかしくなりました。これをまず修正しました。 原因は32*32を前提に、プログラムを組んでいたからなのですが、簡単そうに見えてなかなか上手くいきませんでした。
オブジェクトととの衝突判定
CCTMXLayerとの衝突判定が終わったら、今度はオブジェクト(はてなボックス、ブロック)との衝突判定が上手くいきません。 マリオが大きいせいもありますが、この部分が一番時間がかかりました。 コードの再利用などを考えて実装しているのですが、今の所はなんとか形になっていますが、今後、「敵」「アイテム」など、これまでとは違ったオブジェクトが登場した時に、またおかしくなりそうな予感がします。
マリオを大きくする
アンカーポイントをスプライト(画像)の中心にもっていっているので、マリオが大きくなった時に、色々おかしくなりました。 色々付け加えて、なんとか見えるようになったと思います。
今後
今後、実装したいこと。
- はてなボックスの実装:アイテムが出るようにしたい。
- 敵オブジェクトを作成
- マリオの操作性:ボタンや動き(慣性などを実装)
- マリオが死んだ時のアクション