★あそびかた
マンションの管理人を移動させて、マンションの住人(豚)を床から落とさないようにしてください。管理人を移動させるには、左右(上下)のボタンを押します。住民が無事に通過すると、塞いだ所は赤くなり、通り過ぎるとまたまた穴が空いてしまいます。(ボロマンションのため)
住人(豚)が落ちるとゲームオーバーです。
★プログラムで使用している変数および関数
プログラムで使用している変数の役割(用途)と関数の一覧です。
◆変 数
MANX |
住人(豚)の位置 |
POSM |
住人(豚)の座標位置 |
BG |
仮想画面(背景データ格納用) |
HOKO |
住比との移動方向 |
HOLE |
床の穴が塞がっているどうかのフラグ |
POSX |
管理人の表示座標(画像配列) |
sc |
スコア |
x |
管理人の位置 |
tms |
タイマー割り込み秒数 |
initPat |
タイトル画面用データ |
manPat |
ゲーム画面データ |
flag |
ゲーム実行中かどうかのフラグ(true=実行中) |
◆関 数
erase() |
管理人を消去 |
draw() |
管理人を描画 |
buttonx(n) |
ボタン入力処理 |
init() |
初期化処理 |
moves() |
住人移動 |
main() |
メイン処理 |
hantei(n) |
住人落下判定処理 |
start() |
ゲーム開始処理 |
住人の移動に乱数を使用しています。Netscape 2.0では乱数はUNIXでしか使えませんでしたが3.0では、どの機種でも使用できるようになっています。乱数の発生にはMath.random()関数を使用します。これに数値を乗算する事により「0から乗算数-1」までの乱数を得ることができます。
この得られた乱数をそのまま画像配列で使用するとエラーで停止してしまいます。というのも配列参照に小数を含んだものは使用できないためです。そこでMath.floor()を使用して小数点以下を切り捨てています。実際には以下のようにしています。
p = Math.floor(Math.random()*4);
★注意事項
難易度が低いので速度を早くするなり改良するなりしてみましょう穴の場所を変えてみるのもいいかもしれません。