HTML+CSS+JS 前端基础学习 打字小游戏

这是一个介绍如何使用HTML、CSS和JavaScript创建基本打字游戏的博客文章。代码示例展示了如何生成随机字母、移动小球以及处理用户输入来消除匹配的字母。游戏的目标是防止小球越过红线,当成功匹配字母时,分数会增加。
摘要由CSDN通过智能技术生成

前端基础学习打字小游戏

html+css+js

第一次发布博客,欢迎讨论交流

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 600px;
            height: 600px;
            background-color: rgb(158, 194, 194);
            position: relative;
            margin: auto;
        }

        .zm {
            width: 30px;
            height: 30px;
            font-size: 18px;
            float: left;
        }

        .zm2 {
            width: 90px;
            height: 30px;
            font-size: 18px;
            float: left;
        }

        .mb {
            font-size: 18px;
            text-align: center;
            /* display: none; */
            text-align: center;
        }
        .yxsb{
            position: absolute;
            top: 450px;
            left: 100px;
            width: 200px;
            border: 1px solid #000;
            display: none;
        }
        .qd{
            font-size: 16px;
        }
        .hx{
            width: 100%;
            font-size: 16px;
            color: red;
            border-top: 2px solid rgb(255, 0, 0);
            position: absolute;
            top: 400px;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="zm">

        </div>
       
        <div class="hx">
            不要让小球越过红线
        </div>
        <div class="zm2">
            已被消除
        </div>
        <div class="zm3">
            0
        </div>
        <div class="yxsb">
            游戏失败  <br>
            <a href="">
                <div class="qd">
                    点击确定重新开始
                </div>
            </a>
        </div>
    </div>
</body>
<script>
    var box = document.querySelector(".box")
    var zmsz = ['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 ab = setInterval(runabc, 300)
    function runabc() {

        for (var i = 0; i < 1; i++) {
            var $a = Math.floor(Math.random() * 26);
            var $b = Math.floor(Math.random() * 400);
            var $c = Math.floor(Math.random() * 500);
            var $d = Math.floor(Math.random() * 255);
            var $e = Math.floor(Math.random() * 255);
            var $f = Math.floor(Math.random() * 255);
          

            var $qq = document.createElement("div");

            $qq.style.cssText = ("width:" + 35 + "px;height: " + 35 + "px;border-radius: 50%; background-color: rgb(" + $d + ", " + $e + ", " + $f + ");position: absolute;  top:" + $b + "; left: " + $c + "px;");
            $qq.classList.add("mb")

            box.append($qq);

            // 获取元素
            var p1 = document.querySelectorAll(".mb")
            p1[p1.length - 1].innerHTML = zmsz[$a]
            for (let j = 0; j < p1.length; j++) {
                // 获取p的属性,目的为不断的刷新,新的位置
                var top1 = window.getComputedStyle(p1[j], null).top;
             

                for (let q = 0; q < top1.length; q++) {
                    if (parseInt(top1) > 370) {
                      var yxsb=document.querySelector(".yxsb")
                      yxsb.style.cssText+="display: block;"
                      clearInterval(ab);
                      return

                    }
                }



                p1[j].style.transition = "top  1.5s";
                p1[j].style.top = parseInt(top1) + 13 + 'px';
            }
        }

    }
    var zm = document.querySelector(".zm")
    var zm3 = document.querySelector(".zm3")
    var xmsl=0
    //当键盘按下时
    document.addEventListener("keydown", taa, false);
    function taa(e) {
        //获取小球数组
        var mb = document.querySelectorAll(".mb")
        let mbarr=[]
        //循环小球
        for (let k = 0; k < mb.length; k++) {
            //如果小球的内容和按下键内容相等
            if (mb[k].innerHTML == zmsz[e.keyCode - 65]) {
                mbarr.push(mb[k])
                console.log('小球',mbarr);
                console.log(mbarr[mbarr.length-1]);
            }
        }
        if(mbarr.length>0){
            xmsl+=1
            zm3.innerHTML =xmsl
            box.removeChild(mbarr[0])

            zm.innerHTML = zmsz[e.keyCode - 65]
        }
        //提示那个字母被消除


       
    }



</script>

</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值