JS 打地鼠
<!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>
<title>Print Game</title>
<script type="text/javascript" src="jquery-1.6.js"></script>
<script type="text/javascript">
$(function(){
//全局变量
var chars=new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9"); //字符数组
var char_num=chars.length; //随机的字符数字
var mainpanel_width=400; //主区域宽度
var mainpanel_height=500; //主区域高度
var totalNum=25; //字符总数
var hitCount=0; //击中数
var leftCount=0; //页面剩余数
//设置主区域的边界
$("#mainpanel").width(mainpanel_width).height(mainpanel_height);
//产生一个随机数 从开始覆盖上边界
function randNum(under, over){
switch(arguments.length){
case 1: return parseInt(Math.random()*under+1)-1;
case 2: return parseInt(Math.random()*(over-under+1) + under)-1;
default: return 0;
}
}
//产生一个随机的颜色
function randColor(){
var colors=new Array("1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
var color="#";
for(var i=0;i<6;i++)
{
color+=colors[randNum(colors.length)];
}
return color;
}
//生产一个字符
function productChar(){
leftCount++;
$("#leftCount").text(leftCount);
return $("<div class='char'>"+chars[randNum(char_num)]+"</div>").css({"margin-top":randNum(0,mainpanel_height-30),"margin-left":randNum(0,mainpanel_width-30),"background":randColor(),"color":"black"});
}
//定时产生字符
var tidck;
function startGame(){
tidck=window.setInterval(function(){
//game success
if(leftCount+hitCount==totalNum){
alert("game over,your score is "+hitCount*(100/totalNum));
stopGame();
return false;
}
$("#mainpanel").append(productChar());
},randNum(300,600));
}
function stopGame()
{
clearInterval(tidck);
$(".char").each(function(){
$(this).remove();
});
hitCount=0;
leftCount=0;
$("#hitCount").text("+0")
$("#leftCount").text("0");
}
$("#btnStart").click(function(){
startGame();
});
//监听键盘事件
$(document).keydown(function(event){
var target=String.fromCharCode(event.keyCode);
$(".char").each(function(){
if(target==$(this).text())
{
$(this).hide(300,function(){
$(this).remove();});
hitCount++;
leftCount--;
$("#hitCount").text("+"+hitCount).animate({fontSize:"3em"},"fast").animate({fontSize:"1em"});
$("#leftCount").text(leftCount);
return false;
}
});
});
});
</script>
<style type="text/css">
body{
font-family:cursive;
}
input{
font-family:cursive;
}
.char{
position:absolute;
width:30px;
height:30px;
font-size:20p;
text-align:center;
}
</style>
</head>
<body>
<div id="mainpanel" style="border:solid 2px gray;float:left;">
</div>
<div id="rightpanel" style="border:solid 2px gray;width:200px;height:500px;float:left;margin-left:20px;">
<input id="btnStart" type="button" value="Start" />
<br/>
hit:
<div id="hitCount" style=" height:40px;">
+0
</div>
<br/>
left:
<div id="leftCount">
0
</div>
</div>
</body>
</html>
截图:

浙公网安备 33010602011771号