JavaScript Maniax
■シューティングゲームをつくる その1
まずはシューティングゲームの自機の動きを再現します。
基礎編で学習した内容で、
・キー判定
・タイマーをつかった再帰処理
・指定した位置に文字表示
が出来るようになりました。
シューティングゲームの自機は、キーを押した方向に移動してくれればよいわけですから、「キー判定」⇒「座標計算」⇒「文字表示」というロジックを、「タイマー」をつかって定期的におこなってやることで、キーによって動く自機を表示させることが出来ます。
思いつくままにプログラミングしてみましょう。
<SCRIPT language="javascript">
var mx, my;
mx=100;
my=100;
kCode=new Array(256);
for (i=0;i<256;i++){
kCode[i]=0;
}
function keyDown(){
kCode[event.keyCode]=1;
}
function keyUp(){
kCode[event.keyCode]=0;
}
function main(){
if (kCode[38]) my-=5;
if (kCode[37]) mx-=5;
if (kCode[40]) my+=5;
if (kCode[39]) mx+=5;
text="text01"
document.all.item(text).style.left=mx;
document.all.item(text).style.top=my;
window.setTimeout("main()",50)
}
document.onkeydown = keyDown;
document.onkeyup = keyUp;
</SCRIPT>
あとはBODYタグにonLoad="main()"と書いて呼び出すだけです。
やっていることは単純です。
キーコードを元に、
・カーソルキーの↑(keyCode=38)が押されていたらy座標を−5
・カーソルキーの←(keyCode=37)が押されていたらx座標を−5
・カーソルキーの↓(keyCode=40)が押されていたらy座標を+5
・カーソルキーの→(keyCode=39)が押されていたらx座標を+5
と計算し、その座標にキャラクタを表示しています。
[