孤独な攻防
(表示されるデータが違っている場合は「init all」としてください)

メモリージャグラーをお持ちの方は、ここで使用しているソースをダウンロードして使用できます。
ここでは、キャラクターアクションものを扱ってみます。
一言にキャラアクションと言ってもいろんなタイプがあります。スーパーマリオのようにひたすらスクロールして先に進むモノもあれば、それこそ元祖マリオやドンキーのように固定画面でのバトルを展開するものも。撃ったり避けたりだけでなく、パズル要素が含まれるモノもありますね。
ここではとりあえず固定画面タイプのものを作ってみることにします。 現段階では得点もこれといった演出もなく、ゲームとしてはいささか物足りなすぎる感じです。とりあえずの骨組みといったところでしょうか。
また3D表示になっていますが、実のところ2D表示でもゲーム自体には何の支障もなかったりします。でもまあ3Dのほうがcollisionが使えたりでむしろ実装が楽だったりするのでこちらを選んでみました。
打ち込んでて気になったのは、restore先もrenumberすると反映されないということです。goto先が反映されないのは知っていたけどもrestoreもダメですね。なにか追加・修正して行を揃えるたびにrestoreをいじらないといけないのはいささか面倒。
…と書いてたら「まっさあ」さんからrestoreにもラベル使えるよという天の声が届きました。感謝です。なるほど。しかしラベル使うとデータ部分が倍に膨れることになるので、今のところ採用は未定。

こういうマップスタイルで四方にしか進めない状態(斜め方向が不可)というのは、制限を多く記述するために自由移動状態よりも面倒が多かったりします。プレイヤーキャラの場合は1070行以降でパッド入力からの行き先設定をしていますが、1310行付近でその先が壁になっていないかを確認してから進むようにしています。
ステージを進むごとにinitmap(2840行以降)を呼び出し、マップパターンや敵の種類・数を設定しています。ここでは毎回同じマップ設定ですが、このあたりに細工するとステージごとに違うマップ構成も可能です。

キャラクターアクションの続きです。
ぱっと見がほとんど変化ないので画面図は省略してあります。 演出的な要素(と言うほどのモノでもないですが)や得点などを追加してあります。まず開始時のカメラ回転は290行以降のループで行っています。またいろんなモノがクルクル回るようになっていますが、例えばクリア時のモンスターは1080行以降、クリスタルなどは450行以降で回しています。
ステージごとにモンスターの移動速度が速くなるようにしてみました(3160行)。

restore以外にも「まっさあ」さんから実装修正アイデアなどをいただいてたりしますが、まあ致命的な問題でもないし動いてるからいいかと思って手を着けていません(^^;)。
いちおうBGMもつけてみましたが、しかしサンプルとして入っているのは4曲しかありません。他のゲームなど作ったときに使いにくくなるかなと思って今まで入れてなかったのですが、なんか寂しい感じがしたので鳴らしてみました。

トップへ