JS简单打字小游戏demo

代码:

<!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" />
<!--<meta http-equiv="refresh" content="2" />-->
<title>打字游戏</title>
<style>
html,body{
    width:100%;
    height:100%;
    margin:0;
    padding:0;}
#main{
    width:100%;
    height:100%;}
font{
    position:absolute;
    font-family:"微软雅黑";
    font-size:36px;}
#f{
    position:absolute;
    font-family:"微软雅黑";
    font-size:36px;}
</style>
</head>

<body>
    <div id="main">
        
    </div>
</body>
<script>
    var words=['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'];
    var winWidth=window.innerWidth-47;//获取浏览器宽度
    var winHeight=window.innerHeight-47;//获取浏览器高度(由于win10下面有任务栏遮挡浏览器所以-47)
    var i=1;
    var num=0;
    var flag=0;
    //生成随机字母
    function create(){
        var r=(Math.floor(Math.random()*26));
        var word=document.createElement('font');
        word.innerHTML=words[r];
        word.id=i;
        document.getElementById('main').appendChild(word);//appendChild() 方法向父节点main添加一个子节点到最后
        //随机生成下落位置
        var wr=(Math.floor(Math.random()*winWidth));
        var f=document.getElementById(i);
        f.style.left=wr+"px";
        i++;
    }
    //所有现存字母下掉
    function drop(){
        var x=document.getElementsByTagName('font');
        for(var l=0;l<x.length;l++){
            document.onkeydown=function(event){
                var e = event || window.event;
                if(e && e.keyCode==x[0].innerHTML.charCodeAt()){ 
                    document.getElementById('main').removeChild(x[0]);
                }
            }; 
            //判断是否到达底部,到底部删除当前子节点
            if(x[l].style.top==winHeight+"px"){
                document.getElementById('main').removeChild(x[l]);
                flag++;
                //超过10个没有打中游戏结束
                if(flag>=10){
                    clearInterval(c);
                    clearInterval(d);
                    alert("game over");
                    break;
                }
            }else{
                x[l].style.top=x[l].offsetTop+1+"px";
            }
            
        }
    }
    var c=setInterval(create,1000);//生成速度
    var d=setInterval(drop,10);//下掉速度
    
</script>
</html>

以上代码为js简单打字小游戏demo,原文:https://www.cnblogs.com/mc-web/p/14221035.html

原文地址:https://www.cnblogs.com/mc-web/p/14221035.html