js坦克大战以实现炮弹击中目标消失并且记分
话不多说
下载下面的代码包就能看到效果,
效果图:
js代码如下:/**初始化*/<br>
var shell=document.getElementById('tk');<br>
shell.innerHTML='<div></div>';<br>
var w=shell.offsetWidth;h=shell.offsetHeight;<br>
/**初始化*/<br>
function keyDown(e) { <br>
var keycode = e.which; <br>
remove(keycode,2);//坦克移动<br>
if(keycode=='32'){//发射子弹<br>
zidan();<br>
}<br>
}<br>
<br>
function keyUp(e){//键位弹起时候记录最后按下方向键,并将其储存到class中去<br>
var keycode = e.which; shell_1=document.getElementById('shell_1');<br>
<br>
if(keycode=='37' || keycode=='38' || keycode=='39' || keycode=='40'){<br>
shell_1.className='qin'+keycode;<br>
}<br>
<br>
}<br>
/**键位监听*/<br>
document.onkeydown = keyDown;<br>
document.onkeyup = keyUp;<br>
/**键位监听*/<br>
function remove(code,su){//玩家坦克移动函数<br>
var shell_1=document.getElementById('shell_1');<br>
var l;<br>
if(code=='37'){//左移<br>
l=shell_1.style.marginLeft;<br>
l=parseInt(l);<br>
if(l>0){<br>
shell_1.style.marginLeft=(l-su)+'px';<br>
}<br>
}<br>
<br>
if(code=='38'){//上移<br>
l=shell_1.style.marginTop;<br>
l=parseInt(l);<br>
if(l>0){<br>
shell_1.style.marginTop=(l-su)+'px';<br>
}<br>
}<br>
<br>
if(code=='39'){//右移<br>
l=shell_1.style.marginLeft;<br>
l=parseInt(l);<br>
if(l
shell_1.style.marginLeft=(l+su)+'px';<br>
}<br>
}<br>
<br>
if(code=='40'){//下移<br>
l=shell_1.style.marginTop;<br>
l=parseInt(l);<br>
if(l
shell_1.style.marginTop=(l+su)+'px';<br>
}<br>
}<br>
<br>
}<br>
<br>
function zidan(){//玩家坦克子弹函数<br>
/**获取子弹初始位置*/<br>
var che=document.getElementById('shell_1');<br>
var l=che.style.marginLeft;<br>
var t=che.style.marginTop;<br>
var html=shell.innerHTML;//获取原有html<br>
/**获取子弹初始位置*/<br>
<br>
var myDate = new Date();<br>
var myid=myDate.getTime(); <br>
<br>
/**创建初始子弹*/<br>
shell.innerHTML=html+'<div></div>';<br>
/**最初の箇条書きを作成する*/<br>
<br>
/**弾丸の方向を知る*/<br>
var fx=che.className;//弾丸の方向は弾丸の初期段階でのみ取得可能です<br>
/**弾丸の方向を知る*/<br>
<br>
<br>
<br>
<br>
var set=setInterval(function(){<br>
<br>
var zd=document.getElementById(myid);//箇条書きを取得します<br>
<br>
If(fx=='qin39'){//弾丸は右へ進みます<br>
var ls=zd.style.marginLeft;<br>
ls=parseInt(ls);<br>
If(ls<w></w>
zd.style.marginLeft=(ls+1)+'px';<br>
}その他{<br>
レジダン(myid);<br>
「
}<br>
}<br>
If(fx=='qin37'){//弾丸は左へ進みます<br>
var ls=zd.style.marginLeft;<br>
ls=parseInt(ls);<br>
If(ls>0){<br>
zd.style.marginLeft=(ls-1)+'px';<br>
}その他{<br>
レジダン(myid);<br>
「
}<br>
}<br>
If(fx=='qin38'){//上向きの弾丸<br>
var ls=zd.style.marginTop;<br>
;
If(ls>0){<br>
zd.style.marginTop=(ls-1)+'px';<br>
}その他{<br>
レジダン(myid);<br>
「
}<br>
}<br>
If(fx=='qin40'){//下向きの箇条書き<br>
var ls=zd.style.marginTop;<br>
ls=parseInt(ls);<br>
If(ls<h></h>
zd.style.marginTop=(ls+1)+'px';<br>
}その他{<br>
レジダン(myid);<br>
「
}<br>
}<br>
<br>
},10);<br>
<br>
}<br>
<br>
<br>
function rezidan(id){//删除子弹函数或者坦克<br>
var child=document.getElementById(id);<br>
if(child){<br>
shell.removeChild(child);<br>
}<br>
}<br>
<br>
<br>
//**电脑坦克*/<br>
<br>
function ran(){//随机1到4的方位函数<br>
var kwc=Math.ceil(Math.random()*10);<br>
var kwv;<br>
if(kwc%4==0){kwv=1;}<br>
if(kwc%4==1){kwv=2;}<br>
if(kwc%4==2){kwv=3;}<br>
if(kwc%4==3){kwv=4;}<br>
return kwv;<br>
}<br>
<br>
<br>
<br>
function rantanke(){//随机创建敌方坦克<br>
<br>
<br>
<br>
/**初始坦克随机出现位置*/<br>
var html=shell.innerHTML;//获取原有html<br>
var t=Math.random()*1000;<br>
var l=Math.random()*1000;<br>
<br>
if(t>h){t=(t-h)+'px';}else{t=t+'px';}//判断坦克不会超出边界太远<br>
if(l>w){l=(l-w)+'px';}else{l=l+'px';}//判断坦克不会超出边界太远<br>
/**初始坦克随机出现位置*/<br>
<br>
<br>
<br>
var myDate = new Date();<br>
var myid=myDate.getTime();<br>
/**创建坦克*/<br>
shell.innerHTML=html+'<div></div>';<br>
/**タンクを作成する*/<br>
<br>
var setz=setInterval(function(){<br>
/**殴られる*/ <br>
var ztk=document.getElementById(myid);dt=ztk.style.marginTop;dl=ztk.style.marginLeft;<br>
dt=parseInt(dt);dl=parseInt(dl); <br>
var zidanob=document.getElementsByClassName('zidan');<br>
if(zidanob.length!=0){ <br>
for(i=0;i<zidanob.length></zidanob.length>
var zt=zidanob[i].style.marginTop;<br>
var zl=zidanob[i].style.marginLeft;<br>
zt=parseInt(zt);zl=parseInt(zl);<br>
if(zt>dt && ztdl && zl
zidanob[i].style.display='none';//隐藏子弹<br>
zidanob[i].className='';//当子弹碰撞後删除子弹的クラスは次次继续击中敌方タンク<br>を防ぐため
rezidan(myid);//删除殴られるタン克<br>
クリアインターバル(setz); //删除&タンクの時間関数<br>
fensu();//记录分数<br>
} <br>
}<br>
}<br>
/**&*/ <br>
var classz=ztk.className;<br>
var oArr = clasz.split(" ");<br>
var fwz;//每次执行这段代码FWZ就清空,fwz是方向判断变量<br>
<br>
<br>
if(classz){// 否か判断&後第一次移動<br>
<br>
if(oArr[0]=='qinr'){//持续向右移動50回<br>
if(parseInt(oArr[1])
var lz=ztk.style.marginLeft;<br>
lz=parseInt(lz);<br>If(lz<w></w>
ztk.style.marginLeft=(lz+2)+'px';<br>
} else {<br>
Fwz = ran () // 壁と格闘して位置を再選択します <br>;
Var clsaa = PARSEINT ([1])+1;
ztk.className='qinr '+clsaa;<br>
} else {<br>
fwz=ran();//向きを再選択<br>
}<br>
}<br>
<br>
<br>
If(oArr[0]=='qinl'){//左に50回移動し続けます<br>
If(parseInt(oArr[1])
lz=parseInt(lz);<br>
If(lz>0){<br>
ztk.style.marginLeft=(lz-2)+'px';
} else {<br>
Fwz = ran () // 壁と格闘して位置を再選択します <br>;
Var clsaa = PARSEINT ([1])+1;
ztk.className='qinl '+clsaa;<br>
} else {<br>
Fwz = ran () // 位置を再選択します <br>;
}<br>
}<br>
<br>
<br>if(oArr[0]=='qint'){//50 回上に進み続けます<br>
If(parseInt(oArr[1])
lz=parseInt(lz);<br>
If(lz>0){<br>
ztk.style.marginTop=(lz-2)+'px';
} else {<br>
Fwz = ran () // 壁と格闘して位置を再選択します <br>;
Var clsaa = PARSEINT ([1])+1;
ztk.className='qint '+clsaa;<br>
} else {<br>
Fwz = ran () // 位置を再選択します <br>;
}<br>
}<br>
If(oArr[0]=='qinf'){//下に 50 回移動し続けます<br>
If(parseInt(oArr[1])
lz=parseInt(lz);<br>
If(lz<h></h>
ztk.style.marginTop=(lz+2)+'px';<br>
} else {<br>
Fwz = ran () // 壁と格闘して位置を再選択します <br>;
Var clsaa = PARSEINT ([1])+1;
ztk.className='qinf '+clsaa;<br>
} else {<br>
Fwz = ran () // 位置を再選択します <br>;}<br>
}<br>
} else {<br>
Fwz = ran () // アクティビティ関数 <br>;
}<br>
(fwz == 2) {// 興味深い値が 2 の場合、右側に実行します
var lz=ztk.style.marginLeft;<br>
lz=parseInt(lz);<br>
ztk.style.marginLeft=(lz+2)+'px';
ztk.className='qinr 1';<br>
}<br>
If (fwz == 3) {// 興味深い値 3 が左に実行されます
var lz=ztk.style.marginLeft;<br>
lz=parseInt(lz);<br>
ztk.style.marginLeft=(lz-2)+'px';<br>
ztk.className='qinl 1';<br>
}<br>
If (fwz == 1) {// 興味深い値 1 が上向きに実行されます <br>
var lz=ztk.style.marginTop;<br>
lz=parseInt(lz);<br>
ztk.style.marginTop=(lz-2)+'px';<br>
ztk.className='qint 1';<br>
}<br>
(fwz == 4) {// 興味深い値が 4 の場合、下に移動します <br>
var lz=ztk.style.marginTop;<br>
lz=parseInt(lz);<br>
ztk.style.marginTop=(lz+2)+'px';<br>
ztk.className='qinf 1';<br>
}<br>
},50);<br>
<br>
}<br>
function fensu(){//スコアリング関数<br>
var ob=document.getElementById('fs');<br>var s=ob.innerText;<br>
s=parseInt(s);<br>
s=s+1;<br>
Ob.innerText=s;<br>
}
rew.zip
( 33.16 KB ダウンロード: 9 回 )

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
