★あそびかた
上から降ってくるスパナを避けながら、左の豚小屋から右の豚小屋まで、ヘルメットをかぶった豚を移動させてください。上から降ってくるスパナにあたると、即ゲームオーバーになります。
豚を移動させるには、←→ボタンを押します(クリック)。一度豚小屋から出てしまうと左の豚小屋には戻れません。
少しづつスパナの落下速度が速くなりますので気を付けて豚を移動させてください(^^)/
★プログラムで使用している変数および関数
プログラムで使用している変数の役割(用途)と関数の一覧です。
◆変 数
py | スパナのY座標 |
scrn | 仮想画面 |
sc | スコア |
x | 豚のX座標 |
tm | スパナの落下速度 |
flag | ゲーム実行中かどうかのフラグ(true=実行中) |
tflag | 太陽の点滅フラグ |
initpat | 初期画面(タイトル画面データ) |
initpat2 | 初期画面(ゲーム実行画面データ) |
tID | タイマー割り込み用 |
◆関 数
init0() | ゲーム画面描画(初期化) |
start() | ゲーム開始処理(変数初期化) |
moves() | スパナ移動 |
movex() | メイン処理 |
hantei() | ゲームオーバー判定処理 |
left() | 豚左移動処理 |
right() | 豚右移動処理 |
このゲームでは画像データをHTMLのIMGタグで指定しておき、あらかじめ全部読み込ませています。画像が全部読み込まれるとonLoadイベントが発生するので、その後タイトル画面を描画させています。
Netscape Navigator 3.0以降では改行コードが入っていると画像との間が空いてしまうので改行は全てなくしてあります。
★注意事項
連続してスタートをクリックするとタイマー割り込みが連続してかかってしまい、速度がおかしくなってしまう場合があります。速度がおかしくなってしまった場合はリロード(再読み込み)してください。(太陽の点滅速度で割り込みが正常かどうか分かります)
太陽を点滅させるために変数tflagを用意しています。点滅させるために0と1を切り替えていますが、このような1、0の切替は、
tflag = tflag ^ 1;
のようにします。^は「排他的論理輪」といって(XORまたはEOR)同じ値でなければ1と0を反転してくれるものです。