jQuery坦克大战文档格式.docx
- 文档编号:17842955
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:16
- 大小:26.72KB
jQuery坦克大战文档格式.docx
《jQuery坦克大战文档格式.docx》由会员分享,可在线阅读,更多相关《jQuery坦克大战文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
Grade"
未消灭敌人个数:
enemyNum"
#Blood"
).html(Blood);
#Grade"
).html(Grade);
#enemyNum"
).html(enemyNum);
InitTank('
me'
{x:
(long-50)/2,y:
high-50},'
up'
InitEnemy();
//键盘点击事件
$(document).keydown(function(evt){
evt=evt||window.event;
varkey=evt.which||evt.keyCode;
if(key==32)
{
SendBullet("
me"
}
switch(key){
case37:
direction="
left"
;
break;
case38:
up"
case39:
right"
case40:
down"
}
if(key>
=37&
&
key<
=40){
ChangeDirection('
direction);
isMeMove=true;
});
$(document).keyup(function(evt){
isMeMove=false;
MyInterval=setInterval("
Refresh()"
timeSpan);
varisMeMove=false;
//当前玩家坦克是否在走
varmoveLong=10;
//玩家坦克移动速度
varenemymoveLong=5;
//敌人移动速度
varbulletmoveLong=20;
//子弹移动速度
vartimeSpan=300;
//刷新页面时间
varlong=600;
varhigh=600;
varenemymoveTime=10;
//敌人走多少次判断距离坦克的方位和打子弹的频率
varenemyNum=5;
//剩余敌人个数
varBlood=3;
//用户的血量
varMaxBlood=5;
//最大血量
varGrade=0;
//等级
functionRefresh(){
varme=$("
#me"
varmtop=$(me).position().top;
varmleft=$(me).position().left;
if(isMeMove){
direction=$(me).attr("
direction"
varoffset=GetOffset(direction);
mtop+=offset.y*moveLong;
mleft+=offset.x*moveLong;
if(mtop<
0){
mtop=0;
}elseif(mtop>
long-$(me).height())
mtop=long-$(me).height();
if(mleft<
mleft=0;
}elseif(mleft>
long-$(me).width())
mleft=long-$(me).width();
$(me).stop().animate({'
top'
:
(mtop+'
px'
),'
left'
(mleft+'
)},timeSpan);
.tank:
visible[enemy='
enemy'
]"
).each(function(){
varetop=$(this).position().top;
vareleft=$(this).position().left;
varbullettime=parseInt($(this).attr("
bullettime"
));
if(bullettime<
=0)
bullettime=enemymoveTime;
vartopSpan=etop-mtop;
varleftSpan=eleft-mleft;
ex=Math.abs(leftSpan)>
Math.abs(topSpan)?
leftSpan/Math.abs(leftSpan)*-1:
0;
ey=Math.abs(leftSpan)>
0:
topSpan/Math.abs(topSpan)*-1;
etop=etop+ey*enemymoveLong;
eleft=eleft+ex*enemymoveLong;
vardirection=GetDirection({x:
ex,y:
ey});
ChangeDirection($(this).attr("
id"
),direction);
SendBullet($(this).attr("
}else
direction=$(this).attr("
varoffset=GetOffset(direction);
etop=etop+offset.y*enemymoveLong;
eleft=eleft+offset.x*enemymoveLong;
bullettime--;
if(etop<
etop=0;
}elseif(etop>
long-$(this).height())
etop=long-$(this).height();
if(eleft<
eleft=0;
}elseif(eleft>
long-$(this).width())
eleft=long-$(this).width();
$(this).stop().animate({'
(etop+'
(eleft+'
)},timeSpan).attr("
"
$(this).attr("
bullettime);
});
.bullet:
visible"
direction=$(this).attr("
vartop=$(this).position().top+offset.y*bulletmoveLong;
varleft=$(this).position().left+offset.x*bulletmoveLong;
if(top<
$(this).hide();
return;
}elseif(top>
if(left<
$(this).remove();
}elseif(left>
(top+'
(left+'
CheckBullet();
CheckTank();
CheckBulletTank();
//判断子弹相碰
functionCheckBullet()
{
.bullet[owner='
]:
varme=this;
$("
.bullet[owner!
='
if(IsCollision(me,this))
{
$(me).stop().hide();
$(this).stop().hide();
}
});
}
//判断坦克相碰
functionCheckTank()
.tank"
).not("
if(IsCollision(me,this))
Failure();
//判断子弹打在坦克上
functionCheckBulletTank()
$(this).stop().hide();
FallBlood();
varfme=this;
if(IsCollision(fme,this))
$(fme).stop().hide();
InitEnemy();
FallEnemy();
Plusblood();
//根据方向返回偏移量
functionGetOffset(direction)
ox=0;
oy=0;
if(direction=='
)
{
ox=-1;
oy=0;
}elseif(direction=='
right'
ox=1;
ox=0;
oy=-1;
down'
oy=1;
}
return{x:
ox,y:
oy};
//获取方向
functionGetDirection(offset)
vardirection='
if(offset.x==-1&
offset.y==0)
direction='
;
}elseif(offset.x==1&
}elseif(offset.x==0&
offset.y==-1)
offset.y==1)
returndirection;
//发送炮弹
functionSendBullet(tid)
if($("
+tid+"
).size()<
2)
varx=$("
#"
+tid).position().left;
vary=$("
+tid).position().top;
vardirection=$("
+tid).attr("
varox=x+offset.x*20+(offset.x==1?
30:
20);
varoy=y+offset.y*20+(offset.y==1?
if($("
hidden"
).size()==0)
$("
.map"
).append($('
bullet"
style="
left:
+ox+'
px;
top:
+oy+'
direction="
+direction+'
owner="
+tid+'
).eq(0).css({left:
ox+'
top:
oy+'
}).attr("
direction).attr("
owner"
tid).show();
//初始化敌人
functionInitEnemy()
#enemy1:
InitTank('
enemy1'
(Math.round(Math.random()*3)-1)*((long-50)/2),y:
0},'
}else
#enemy1"
).css({left:
(Math.round(Math.random()*3)-1)*((long-50)/2)+"
px"
0}).removeClass($("
).attr("
)).addClass("
"
).show();
enemy"
'
10"
SendBullet("
enemy1"
//初始化坦克
//tid坦克id
//x横坐标(left值)
//y纵坐标(top值)
//方向
functionInitTank(tid,position,direction){
x=position.x<
0?
0:
position.x;
x=position.x>
600?
600:
y=position.y<
position.y;
y=position.y>
divid="
+position.x+'
+position.y+'
class="
tank'
//改变坦克的方向
functionChangeDirection(tid,direction){
+tid).removeClass($("
+tid).attr("
)).addClass(direction).attr("
//判断两个元素是否碰撞
functionIsCollision(obja,objb)
varobjaInfo={width:
$(obja).width(),height:
$(obja).height(),left:
$(obja).position().left,top:
$(obja).position().top};
varobjbInfo={width:
$(objb).width(),height:
$(objb).height(),left:
$(objb).position().left,top:
$(objb).position().top};
if(objaInfo.left<
objbInfo.left)
if(objaInfo.left+objaInfo.width<
=objbInfo.left)
returnfalse;
if(objbInfo.left+objbInfo.width<
=objaInfo.left)
if(objaInfo.top<
objbInfo.top)
if(objaInfo.top+objaInfo.height<
=objbInfo.top)
if(objbInfo.top+objbInfo.height<
=objaInfo.top)
returntrue;
//掉血
functionFallBlood()
Blood--;
if(Blood<
Failure();
//加血
functionPlusblood()
MaxBlood)
Blood++;
//升级
functionUpgrade()
Grade++;
enemyNum=5+Grade*2;
//更新敌人个数
enemymoveLong=((10+Grade<
20)?
10+Grade:
//更新敌人移动速度
//减少敌人
functionFallEnemy()
if(enemyNum==0)
Upgrade();
enemyNum--;
//失败
functionFailure()
clearInterval(MyInterval);
alert('
结束了'
/script>
styletype="
text/css"
.map
{
width:
600px;
height:
border:
1pxsolid#000;
float:
left;
position:
absolute;
top:
left:
.bullet
width:
10px;
height:
background:
#FF0;
.tank
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jQuery 坦克 大战