ここは、ふぇりあ16歳が不定期に連載しているオンライン小説のページです。
VNIふぇりあ16歳へ
ゼロからわかる現代JavaScript
41.キーコードの取得2
今度はキーコードとDOMを使って
キャラクターを動かしてみましょう
つまりは、過去に学んだことを組み合わせてみようということです。
今回使用するソースコード |
//X座標の初期値 var x = 0; //キャラクターの加速度 var PLAYER_VX = 2; //右キー var KEY_RIGHT = 39; //左キー var KEY_LEFT = 37; function main() { //イメージ要素の作成 img = document.createElement("img"); //<body>に要素を追加 document.body.appendChild(img); //画像ファイルを読み込み img.src = "f_mail2.gif"; //スタイルを絶対値に指定 img.style.position = "absolute"; //キャラの描画と更新 sub(); //ドキュメントオブジェクトのキーダウンイベントにメソッドを結びつける document.onkeydown = function () { //キーコードを取得する(IE) var kc = event.keyCode; //キーコードを文字に変換 var chr = String.fromCharCode(kc); //DOMを使って出力 document.getElementById("str1").innerHTML = kc + "は「" + chr + "」、X座標は" + x; //右キーが押されたらX座標を加算する if (kc == KEY_RIGHT) { //X座標が400でないとき if (x < 400) x += PLAYER_VX; //加速度をつけています。 if (x >= 400) alert("クリア!手紙を無事に届けました!"); } //左キーが押されたらX座標を減算する if (kc == KEY_LEFT) { if(x != 0) x--; } } } function sub() { //キャラの位置を更新 img.style.left = x + "px"; tm = setTimeout("sub()", 50); } |
やっていることはシンプルかつ簡単で
キーコードでキーが押されたことを判定し
グローバル変数xの値(X座標)を加算または減算するということです。
それでも簡単なゲームらしきものが出来上がります。
凄いですね!
またPLAYER_VXなどの大文字の変数は定数として
数字では分かりにくいものを、分かりやすく書く手法で、そうした方がいいと思います。
実行結果
コラム:
テガミバチって手紙を届けるの途中で凄いモンスターが出てきますよね。
仕事は何でも命がけでやれということかも
(C)著作権はふぇりあ16歳とお兄ちゃんにあります。
無断転載、盗用は禁止です。