ゲームらしくするために、チーズを導入した。チーズは、[Alt]+矢印キーで上下左右に移動可能である。チーズを移動するたびに、ネズミがチーズに近づく。チーズを使って、ネズミを池に誘い込むというゲームにした。
このために、以下の機能を追加しなければならない:
2のネズミをチーズに近づける処理を実装するために、ネズミがランダムに動くだけではだめである。 ネズミを指定した方向へ動かすことができるように、まずは宿題03のプログラムを書き換えるところから始めよう。
キーボードのキーを押してチーズを動かしたときに、ネズミをチーズに近づけるために動かす関数は、function move2cheese(element, Delta)で定義している。 本来はmove_to_cheeseという名前にすべきであったが、_to_で名前が長くなりすぎるので同じ発音の2を使った。プログラミングではtoの代わりに発音が同じ2を名前に使う場合がよくある。
function move2cheese(element, Delta)の定義のなかの
if(cheese.style.display == "none" ){ return; } if(element.style.display == "none" ){ return; }
は、チーズが非表示の時、あるいはネズミ自身が非表示のときは、何もしないで戻るということで、ネズミを動かさないという意味である。
は、ネズミからチーズの方向へ向かうベクトルを表わす連想配列である。
は、このベクトルの長さで、ネズミからチーズまでの距離である。 Deltaが、ネズミのチーズ方向への移動距離である。
function KeyDownFunc(e)の定義でmove2cheese(element, Delta)を呼び出すときに、
として、DeltaがD_nezumi/2になるように呼び出しているので、ネズミの移動量はD_nezumiの半分になっている。