<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>小汽车</title> <link rel="stylesheet" href="css/index.css" /> </head> <body> <!--提示开始游戏--> <div class="mess"> <p>准备</p> </div> <!--公路--> <div class="wrapper"> <div class="sun"></div> <div class="rode"> <div class="line"></div> </div> <div class="car"></div> <div class="time"> <div class="time-item1">用时</div> <div class="time-item2"></div> </div> </div> </body> <script src="js/jquery-2.1.1.min.js"></script> <script type="text/javascript"> var width = $("body").width(); //屏幕的宽度 var height = $("body").height(); //屏幕的高度 var carL = $(".car").position().left; //小车相对屏幕的偏移 var speed = 200; //设置开始的速度 var temp = 0; var timer = null; var timerCount = 3; var action = false; var over = true; var timerUp = null; var page = 30; var d1 = null; var d2 = null; getEnemy(); timer = setInterval(function(){ if(timerCount>0){ $(".mess p").html(timerCount); timerCount --; } else{ $(".mess p").html("Go!"); clearInterval(timer); setTimeout(function(){ d1 = new Date(); $(".mess p").html(""); action = true; },100); } },1000); $(".rode").css({"height":30*height,"top":-29*height}) $(".line").css({"height":height*30}); var flag = false; //按下向上,向左,向右时触发 $(document).keydown(function(e){ if(action&&over){ clearInterval(timerUp) if(e.keyCode==37){ temp -= 10; } if(e.keyCode == 38){ flag = true; } if(e.keyCode==39){ temp += 10; } if(flag && speed< 1000){ console.log("jia") speed += 10; } console.log(speed,flag); $(".car").css("left",carL+temp); } }); //抬起向上键触发 $(document).keyup(function(e){ if(action){ if(e.keyCode == 38){ flag = false; timerUp=setInterval(function(){ if(speed<=200){ clearInterval(timerUp); speed = 200; } else{ speed -= 20; } console.log(speed) },10) } } }); //判断我方车是否碰到边界或者碰到敌人 function hasOver(){ if(action){ //console.log($(".car").offset().left,$(".rode").offset().left); if($(".car").offset().left < $(".rode").offset().left){ over = false; $(".car").addClass("peng1"); setTimeout(function(){ over = true; },1000); speed = 50; } else if($(".car").offset().left+30-width*0.2>$(".rode").offset().left){ over = false; $(".car").addClass("peng2"); setTimeout(function(){ over = true; },1000); speed = 5; } $(".enemy").each(function(){ if($(this).offset().top>0 && $(this).offset().top < height){ if($(".car").offset().left > $(this).offset().left && $(this).offset().left+30 > $(".car").offset().left && $(this).offset().top+60>$(".car").offset().top){ action = false; $(".rode").stop(); $(".mess p").html("游戏结束"); } else if($(".car").offset().left < $(this).offset().left && $(".car").offset().left+30>$(this).offset().left && $(this).offset().top+60>$(".car").offset().top){ action = false; $(".rode").stop(); $(".mess p").html("游戏结束"); } } }); if($(".rode").position().top == 0){ action = false; $(".rode").stop(); if(localStorage.getItem("great")){ var great = parseInt(localStorage.getItem("great")); } else{ var great = 99999999999999999; } console.log(parseInt($(".time-item2").attr("time"))) if(great > parseInt($(".time-item2").attr("time"))){ great = parseInt($(".time-item2").attr("time")); localStorage.setItem("great",$(".time-item2").attr("time")); } var s = parseInt(great/1000)>0?parseInt(great/1000)+"秒"+(great)%1000:""+(great)%1000 $(".mess p").html("闯关成功<br>用时:"+$(".time-item2").html()+"<br>最高纪录"+s); } } } //生成敌人小汽车 function getEnemy(){ while(page>0){ for(var i = 0 ; i < 2 ; i++){ //console.log(page); var left = parseInt(Math.random()*(width*0.2-30)); var top = parseInt(Math.random()*(height-200))+height*page; var n = parseInt(Math.random()*2)+1; var newEnemy = $("<div class='enemy' style='background: url(img/enemy"+n+".png) no-repeat'></div>"); newEnemy.offset({"left":left,"top":top}); $(".rode").append(newEnemy); } page --; } } //随时进行判断 var t = setInterval(function(){ if(action){ d2 = new Date(); var t = (d2.getTime()-d1.getTime()); $(".time-item2").attr("time",t); $(".time-item2").html(parseInt(t/1000)>0?parseInt(t/1000)+"秒"+(t)%1000:""+(t)%1000) move(speed); } hasOver(); },10); function move(p){ var s = 0-$(".rode").position().top; $(".rode").stop().animate({ "top": 0 },49*s*10/p,"linear"); } </script> </html>