キー入力でビームを発射し移動させる(単発) |
Internet Explorer | Netscape Navigator | Opera | iCab | Safari | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3.0 | 4.0 | 4.5 | 5.0 | 5.5 | 6.0 | 2.0 | 3.0 | 4.0x | 4.x | 6.0 | 7.0 | 6 | 7 | 2.x | 1.0 | |
Windows | × | ○ | - | ○ | ○ | ○ | × | × | × | × | × | × | × | × | - | - |
Macintosh | × | ○ | ○ | ○ | - | - | × | × | × | × | × | × | × | - | × | × |
UNIX | - | - | - | - | - | - | × | × | × | × | × | × | - | - | - | - |
ポイント | function moveBeam() { by = by - 15; document.images["beam"].style.left = bx; document.images["beam"].style.top = by; if (by < -40) { bFlag = false; }else{ setTimeout("moveBeam()",100); } } |
---|---|
説 明 | キー入力でビームを発射させるにはビームのXY座標を示す変数とビームが発射されているかどうかを示すフラグ変数を用意します。フラグ変数はtrueであれば発射中、falseであれば発射されていないとします。キーが押されたら発射キーかどうか調べ、フラグ変数も調べてfalseだったら発射するようにします。発射するビームのXY座標を指定しタイマーを設定します。このタイマーで定期的にビームの移動処理を行います。ビームの移動はY座標を減らし、画面外まで移動したらビームのフラグ変数をfalseにしてビームが発射されていないようにします。画面内の場合には再度タイマーを設定しビームの移動処理を行います。 |
サンプル | <html> <head> <title>キー入力でビームを発射し移動させる(単発)</title> <script Language="JavaScript"><!-- bx = 0; by = 0; bFlag = false; function moveBeam() { by = by - 15; document.images["beam"].style.left = bx; document.images["beam"].style.top = by; if (by < -40) { bFlag = false; }else{ setTimeout("moveBeam()",100); } } function startBeam() { kc = event.keyCode; c = String.fromCharCode(kc); if ((bFlag == false) && (c == " ")) { bx = 62; // ビームの発射X座標、自機のX座標に合わせる by = 100; // ビームの発射Y座標、自機のY座標に合わせる bFlag = true; // 発射されている事をフラグで示す setTimeout("moveBeam()",100); } } // --></script> </head> <body onKeydown="startBeam()"> <img src="beam.gif" name="beam" style="position:absolute;left:0px;top:-100px;"> <img src="fighter.gif" name="myChar" style="position:absolute;left:50px;top:100px;"> </body> </html> |
補足説明 | なし |
■サンプルスクリプトを実行する >>実行 ■各ブラウザでの動作結果を見る >>View! |