スペース・パニックは1980年にユニバーサル(現・ユニバーサルエンターテインメント)によって設計されたアーケードゲームです。上は自分でつくったゲーム、下は本物のスペースパニックの実演動画です。

主人公は敵であるエイリアンを穴を掘って穴から突き落として倒します。またエイリアンのなかには強力なものもあり、2つ以上の穴を垂直に並べて落とさないと死なないものもあります。

スペース・パニックは商業的には失敗との評価ですが、その理由として1983年エレクトロニック・ゲームズ誌はコンセプトの斬新さが観客に受け入れられなかったことを挙げています。「クライミングゲームの最初の作品であるだけでなく、掘るゲームの最初の作品でもあった。新しいゲームをプレイする人にとって、これはかなりの負担だ。しゃれを言うつもりではなく平均的なゲーマーがするには梯子が高すぎた」とのこと。

管理人はゲームセンターで他の人がプレイしているのをみたことはありますが、自分自身でこのゲームをしたことがありません。それから当時は学校の規則でゲームセンターへの立ち入りは禁止されていて・・・こんなことを書くと管理人のだいたいの年齢がバレます。

ステージをつくる

ではさっそくはじめましょう。ステージをつくるところからはじめます。

画像ファイルを作成してリソースに追加しておきます。

6階建ての建物でところどころにハシゴがあり、上下の階に移動できます。キャラクターサイズを32ピクセル×32ピクセルとして1階の高さをキャラクターサイズの3倍、幅を15倍としましょう。

こんな感じにつくります。X座標はキャラクターサイズの0倍から15倍まで白い直線を、Y座標はキャラクターサイズの3倍ずつ増やして黄色の直線を描画しています。それから上と左に余白をいれています。

ゲームのキャラクターを移動させたり描画するためのGameManagerクラスを作成します。

床を描画する

X座標とY座標はそれぞれキャラクターが移動する座標であり、床はそれよりもキャラクターサイズ分下に存在します。それからキャラクターが移動できる部分よりも広めに描画します。一番下は穴を掘ることができない床なので別の色で描画します。

ハシゴを描画する

次にハシゴを描画します。

ハシゴがある位置は、

全階のX座標がCharctorSizeの0倍と14倍(両端)の位置
1階はX座標がCharctorSizeの4倍と10倍
2階はCharctorSizeの10倍
3階はCharctorSizeの6倍
4階はCharctorSizeの6倍
5階はX座標がCharctorSizeの4倍と10倍の位置

にあるものとします。X座標がこれらの値のときは上の階へ移動することができます。同様に移動先の階とX座標から下の階に移動することもできます。

以下はハシゴの位置を取得するメソッドです。コンストラクタ内で実行して結果をフィールド変数に保存します。

ハシゴを描画する処理を示します。

実際に描画の処理をするときは上記のメソッドをForm1クラスから呼び出します。