★あそびかた

 シェフのリーさんを左右に移動して落下してくるソーセージや卵を落とさないようにしてください。ただそれだけです(^^;
 移動させるには、矢印ボタンを押せばシェフが移動します。
 ソーセージや目玉焼きを床に落としてしまうとゲームオーバーになります。ソーセージや目玉焼きが上昇しているか加工しているかは床の下にある矢印で見分けることが出来ます。かなり難しいゲームですので、難しいと思ったら下記の説明を参考に改良してみて下さい。



★プログラムで使用している変数および関数

 プログラムで使用している変数の役割(用途)と関数の一覧です。

◆変 数
BG 仮想画面(背景データ格納用)
hoko ソーセージや目玉焼きの移動方向
data 放物線データ(ポインタ)
px ソーセージや目玉焼きの座標
sc スコア
dl コックの左の画像位置
x コックの左のX座標
tm タイマー割り込み秒数
fire 炎のアニメーション用
flag ゲーム実行中かどうかのフラグ(true=実行中)
tflag 太陽の点滅フラグ
pat 実行画面データ
pat2 初期画面データ
tID タイマー割り込み用
p ソーセージや目玉焼きの開始位置(配列参照用)

◆関 数
erase() シェフを消去
draw() シェフを描画
moves() ソーセージと目玉焼き移動
main() メイン処理
hantei() フライパン判定処理
left() シェフ左移動処理
right() シェフ右移動処理
init() 初期化処理
start() ゲーム開始処理

 ソーセージと目玉焼きの表示は、表示するX座標によって交互にしています。この判定を行っているのが

if (p & 1) im=dr+"7.gif";

 という部分です。pは表示位置(実際は配列参照用の位置)で、これは必ず「奇数」「偶数」の繰り返しになります。ですから偶数の時にソーセージ、奇数の時に目玉焼きという具合になります。この「偶数」「奇数」の判定を行っているのがp & 1の部分で&は「論理積」といって両方とも1でなければ、0になるというものです。つまり奇数なら1、偶数なら0になるという仕組みです。




★注意事項

 連続してスタートをクリックするとタイマー割り込みが連続してかかってしまい、速度がおかしくなってしまう場合があります。速度がおかしくなってしまった場合はリロード(再読み込み)してください。(炎の点滅速度で割り込みが正常かどうか分かります)
 元々の難易度が高いので速度を遅くするなり改良するなりしてください。