ゲームらしくするために、チーズを導入した。チーズは、[Ctrl]+矢印キーで上下左右に移動可能である。チーズを移動するたびに、ネズミがチーズに近づく。チーズを使って、ネズミを池に誘い込むというゲームにした。
このために、以下の機能を追加しなければならない:
2のネズミをチーズに近づける処理を実装するために、ネズミがランダムに動くだけではだめである。 ネズミを指定した方向へ動かすことができるように、まずは宿題03のプログラムを書き換えるところから始めよう。
関数function check_cheese(element)を、引数elementがチーズと重なる場合は1、そうでない場合は0を返すように定義している。
randomove(nezumi1, D_nezumi)やmove2cheese(nezumi1, D_nezumi/2)で、ネズミを動かしたとき、check_cheese()を呼び出してチェックしている。
// 位置が変更されたネズミがチーズとぶつかったか否かを判定 if( check_cheese(element) == 1 ){ alert("Thanks for the cheese!"); cheese.style.display = "none"; }
ネズミがチーズに重なったときは、cheese.style.display = "none"によって、チーズを非表示にしている。
チーズを非表示にするだけではなく、document.removeEventListner("keydown" , KeyDownFunc, true)を実行して、イベントリスナーを解除した方がよい場合もある。