[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
353: 名前は開発中のものです。 [sage] 04/07/15 22:51 ID:7EJWxb81(1/2) AAS
課題10 インベダ風移動

<html><head><title>Invader Game?</title><style type="text/css"><!--
.ch{background-color : #FF0000; position : absolute; width : 32px; height : 32px;}
.missile{background-color : #BBC000;position : absolute;width : 2px; height : 16px;top : -20px;}
--></style></head><body onLoad="main()" onKeyDown="k[event.keyCode]=1" onKeyUp="k[event.keyCode]=0">
<div id=char class="ch"></div><script language="Javascript"><!--
var timerID, k = [], GameOver = false;
var x = 304, y = 448, charElm = document.getElementById('char');
var enMX = 2, enMY = 0, enE = [], enA = [], enX = [], enY = [];
for (i = 0; i < 6; i++){
document.write('<div id=en' + i + ' class="ch"></div>');
enE[i] = document.getElementById('en' + i); enA[i] = true;
enE[i].style.left = enX[i] = i % 3 * 33; enE[i].style.top = enY[i] = Math.floor(i / 3) * 33 - 2;
}
var miE = [], miA = [], miX = [], miY = [];
for (i = 0; i < 3; i++){
document.write('<div id=mi' + i + ' class=missile></div>');
miE[i] = document.getElementById('mi' + i); miA[i] = false; miY[i] = -20;
}
354: 名前は開発中のものです。 [sage] 04/07/15 22:52 ID:7EJWxb81(2/2) AAS
function main(){
clearTimeout(timerID);
charElm.style.left = x += k[37] && x ? -8 : k[39] && x < 608 ? 8 : 0;
charElm.style.top = y += k[38] && y ? -8 : k[40] && y < 448 ? 8 : 0;
for (var i = 0; i < 3; i++)
if (miA[i]){
if (miY[i] < -20) miA[i] = false;
miE[i].style.top = miY[i] -= 8;
}else if (k[90]){
k[90] = 0; miA[i] = true;
miE[i].style.left = miX[i] = x + 15; miE[i].style.top = miY[i] = y - 16;
}
var enBMX = enMX, enBMY = enMY;
for (var i = 0; i < 6; i++)
if (enA[i]){
enE[i].style.left = enX[i] += enBMX; enE[i].style.top = enY[i] += enBMY;
enMX = enX[i] > 608 ? -2 : enX[i] < 0 ? 2 : enMX;
if (enX[i] > 608 || enX[i] < 0) enMY = 32;
if (Math.abs(x - enX[i]) < 32 && Math.abs(y - enY[i]) < 32 || enY[i] > 448) GameOver = true;
for (var j = 0; j < 3; j++)
if (miA[j] && miX[j] - enX[i] < 32 && enX[i] - miX[j] < 2 && miY[j] - enY[i] < 32 && enY[i] - miY[j] < 16){
enA[i] = miA[j] = false; enE[i].style.top = miE[j].style.top = -40;
break;
}
}
if (enBMY == 32) enMY = 0;
timerID = GameOver ? 0 : setTimeout(main, 30);
}//--></script></body></html>
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s