只是学习jquery的用法,原算法和css文件基本都没改。增加了已撑时间。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>是男人就撑20秒(jquery 学习)</title>
<link href="style/zns_common.css" type="text/css" rel="stylesheet" />
<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
//生成随机数
function rnd(min,max){
return parseInt((Math.random()*999)%(max-min+1))+min;
}
//鼠标右键无效
$(document).bind("contextmenu",function(e){return false;});
//定时函数
var iTimerBullet=null;
//包装碰撞块对象的数组
var aBullet=[];
var MAX_SPEED=5;
var MIN_SPEED=2;
//每级所用的时间 3000ms
var SCREEN_TIME=3;
var COUNT_BULLET=10;
var iLevel=1;
var iScore=0;
var i=0;
$("#start").click(function(ev){
$("#man").show();
//移动红快
$(document).mousemove(function(ev){
var mLeft=$("#bg").css("margin-left").replace("px","");
var mTop=$("#bg").css("margin-top").replace("px","");
var bgPos=$("#bg").position();
//left
var l=ev.pageX-bgPos.left-mLeft-$("#man").width()/2;
//top
var t=ev.pageY-bgPos.top-mTop-$("#man").height()/2;
//越界判断
if(l<0){
l=0;
}
else if(l>=$("#bg").width()-$("#man").width()){
l=$("#bg").width()-$("#man").width();
}
if(t<0){
t=0;
}
else if(t>=$("#bg").height()-$("#man").height()){
t=$("#bg").height()-$("#man").height();
}
$("#man").css({"left":l+"px","top":t+"px"});
});
//子弹
var startTime=(new Date()).getTime();
var startTimeAll=(new Date()).getTime();
iTimerBullet=setInterval(function (){
for(i=0;i<aBullet.length;i++)
{
aBullet[i].x+=aBullet[i].speedX;
aBullet[i].y+=aBullet[i].speedY;
aBullet[i].obj.css("left",aBullet[i].x+'px')
.css("top",aBullet[i].y+'px');
if(aBullet[i].x<0 || aBullet[i].x>$("#bg").width()|| aBullet[i].y<0 || aBullet[i].y>$("#bg").height())
{
removeBullet(aBullet[i]);
createBullet();
i--;
}
if(cd(aBullet[i].obj, $("#man")))
{
clearInterval(iTimerBullet);
$(document).unbind("mousemove");
$("#game_over").show();
}
}
var t=(new Date()).getTime()-startTimeAll;
$("#spendTime").text(Math.round(t/1000)+"秒");
iScore=parseInt(t/300);
$("#score").html('<li>难度:'+iLevel+'</li><li>得分:'+iScore+'</li>');
var t=(new Date()).getTime()-startTime;
var scale=100*(1-t/(SCREEN_TIME*1000));
var $oProgressSpan=$("#progress span");
if(scale<=0)
{
$oProgressSpan.width(0+'%');
startTime=(new Date()).getTime();
createBullet();
COUNT_BULLET++;
MAX_SPEED+=0.5;
iLevel++;
}
else
{
$oProgressSpan.width(scale+'%');
}
}, 30);
function createBullet()
{
var x,y,speedX,speedY;
do
{
var left=rnd(0,2);
var top=rnd(0,2);
}while(!(left==1 && top!=1 || left!=1 && top==1));
if(0==left)
{
x=0;
speedX=rnd(MIN_SPEED, MAX_SPEED);
}
else if(1==left)
{
x=rnd(0, $("#bg").width());
speedX=rnd(-MAX_SPEED, MAX_SPEED);
}
else
{
x=$("#bg").width();
speedX=-rnd(MIN_SPEED, MAX_SPEED);
}
if(0==top)
{
y=0;
speedY=rnd(MIN_SPEED, MAX_SPEED);
}
else if(1==top)
{
y=rnd(0, $("#bg").height());
speedY=rnd(-MAX_SPEED, MAX_SPEED);
}
else
{
y=$("#bg").height();
speedY=-rnd(MIN_SPEED, MAX_SPEED);
}
var $oDiv=$("<div class='bullet'></div>");
$oDiv.css({"left":x+"px","top":y+"px"});
$("#bg").append($oDiv);
aBullet.push({obj: $oDiv, x: x, y: y, speedX: speedX, speedY: speedY});
}
function removeBullet(oBullet)
{
var aResult=[];
for(i=0;i<aBullet.length;i++)
{
if(aBullet[i]!=oBullet)
{
aResult.push(aBullet[i]);
}
}
oBullet.obj.remove();
aBullet=aResult;
}
for(i=0;i<COUNT_BULLET;i++)
{
createBullet();
}
function cd($obj1, $obj2)
{
var pos1=$obj1.position();
var pos2=$obj2.position();
var l1=pos1.left;
var r1=pos1.left+$obj1.width();
var t1=pos1.top;
var b1=pos1.top+$obj1.height();
var l2=pos2.left;
var r2=pos2.left+$obj2.width();
var t2=pos2.top;
var b2=pos2.top+$obj2.height();
if(r1<l2 || l1>r2 || b1<t2 || t1>b2)
{
return false;
}
else
{
return true;
}
}
$("#start").hide();
});
});
</script>
</head>
<body>
<div id="bg">
<input class="btn" id="start" type="button" value="开始" />
<div id="progress">
<span></span>
</div>
<ul id="score">
<li>难度:1</li>
<li>得分:0</li>
</ul>
<div id="spendTime">0s</div>
<div id="game_over">
<img src="img/game_over.jpg" alt="game_over" />
<div id="btn_pos">
<input class="btn" type="button" value="重新开始" onclick="window.location.reload()" />
</div>
</div>
<div id="man"></div>
</div>
<div id="shadow"></div>
<div id="popup">
<form onsubmit="return auth();" id="form_score" action="http://bbs.miaov.com/applications/man_20/post.php?act=post" method="post" target="_blank">
<ul>
<li><var>分数:</var><span><input type="text" name="cmt_score" style="border:0; background:#EEE;" readonly="1" /></span></li>
<li><var>难度:</var><span><input type="text" name="cmt_level" style="border:0; background:#EEE;" readonly="1" /></span></li>
<li><var>姓名:</var><input type="text" name="cmt_name" /></li>
</ul>
<p>
<input class="btn" type="submit" value="提交"/>
</form>
</div>
</body>
</html>
相关推荐
第03章电子商务安全.pptx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
电子商务物流第二版教案第5章.ppt
电子商务理论知识纲要与重点.ppt
字符串转数字(c++)
抖音小红书快手B站截流获客引流工具仓库安装更新包
社保数据采集软件用户手册.doc
文献链接:https://www.sciencedirect.com/science/article/pii/S2352484725001349 Tips: 代码运行平台为 matlab+GAMS, 使用Cplex求解
内容概要:本文详细介绍了MIG熔滴过渡与熔池耦合的二维数值模拟方法及其在焊接技术中的应用。主要内容涵盖基础知识介绍、脉冲电流电压的加入与一脉一滴的实现机制、UDF建模与设置教程、Fluent焊接相关内容的应用。通过精确控制脉冲电流电压,实现了每脉冲对应一个熔滴的效果,提高了焊接质量和效率。此外,还提供了详细的建模与设置教程,帮助读者掌握从理论到实践的完整流程。 适合人群:从事焊接技术研究的专业人士、工程技术人员、高校相关专业师生。 使用场景及目标:适用于希望深入了解MIG熔滴过渡与熔池耦合机理的研究人员和技术人员,旨在提升焊接质量与效率,优化焊接工艺。 其他说明:文章不仅提供理论知识,还包括具体的代码分析与实战演练,使读者能够将所学知识应用于实际焊接操作中。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
第四章电子商务物流技术.ppt
内容概要:本文详细介绍了西门子1200多轴伺服步进FB块程序的特点和应用。该程序由两个FB组成,分别采用SCL和梯形图编写,支持PTO脉冲和PN网口模式,适用于多种伺服和步进电机。文中提供了详细的中文注释和关键代码片段,展示了程序的兼容性和灵活性,并分享了多个成功的实际应用案例。此外,还讨论了如何根据具体硬件环境和控制需求对程序进行适当调整,以满足复杂控制需求。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要理解和应用伺服步进电机控制系统的专业人士。 使用场景及目标:① 学习并掌握西门子1200多轴伺服步进FB块程序的设计和实现;② 在实际项目中应用该程序,实现对不同品牌伺服和步进电机的精确控制;③ 提升对工业自动化系统中电机控制的理解和操作能力。 其他说明:本文提供的FB块程序已在多个实际项目中得到验证,确保其稳定性和可靠性。同时,详细的中文注释有助于快速理解程序逻辑,降低调试难度。
免费版的图片处理工具软件PS,可以对图片进行抠图,精修,P图等。
本MATLAB程序用于仿真两种非线性调频(NLFM)信号的生成过程。在生成信号时,分别采用了Hamming窗和四倍余弦窗进行加权处理。随后,对生成的NLFM信号进行了匹配滤波操作。此外,还对信号进行了32倍插值处理以观察其波形特性。通过仿真结果可以发现,NLFM信号无需进行加权处理,直接进行匹配滤波即可获得较低的旁瓣电平。