zoukankan      html  css  js  c++  java
  • 别踩白块

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="css/game.css"/>
    </head>
    <body>
    <div class="grade clearfix">
        <div class="grade1">初级</div>
        <div class="grade2">中级</div>
        <div class="grade3">高级</div>
    </div>
    <div class="btn">
        <div class="start">开始游戏</div>
        <div class="restart">重新开始</div>
        <div class="stop">暂停游戏</div>
    </div>
    <h5 class="tc" style="padding:16px 0;">剩余时长:<span>60</span></h5>
    <div class="wrap">
        <div class="container" id="container">
    
        </div>
    
    </div>
    </body>
    <script src="js/jquery-1.11.3.min.js"></script>
    <script src="js/layer.js"></script>
    <script src="js/game.js"></script>
    <script>
    
    </script>
    </html>
    /*公共样式--开始*/
    body, div, ul, li, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ol, form, input, textarea, th, td, select {
        margin: 0;
        padding: 0;
    }
    
    * {
        box-sizing: border-box;
    }
    
    table {
        border-collapse: collapse;
    }
    
    body {
        font-family: "Microsoft YaHei";
    }
    
    ul, li {
        list-style: none;
    }
    
    a {
        text-decoration: none;
        color: #232323;
    }
    
    img {
        vertical-align: middle;
        border: none;
    }
    
    .tc {
        text-align: center
    }
    
    .tl {
        text-align: left
    }
    
    .tr {
        text-align: right
    }
    
    .fl {
        float: left;
    }
    
    .fr {
        float: right;
    }
    
    .clearfix {
        zoom: 1;
    }
    
    .clearfix:after {
        content: ".";
        width: 0;
        height: 0;
        visibility: hidden;
        display: block;
        clear: both;
    }
    
    /*公共样式--结束*/
    .black{background-color:#000;}
    .white{background-color:#fff;}
    .wrap{width:502px;height:500px;margin:20px auto;border:1px solid #ccc;overflow:hidden}
    .container{width:502px;height:500px;overflow:hidden}
    li,td{float:left;width:100px;height:100px;border:1px solid #ddd;cursor:pointer;}
    .li_first{border-left:none;}
    .li_last{border-right:none}
    h5{font-size:14px;}
    h5 span{color:red;font-size:16px;}
    .start,.stop,.restart{margin-top:10px;float:left;margin-left:20px;width:100px;height:30px;line-height:30px;text-align:center;color:#fff;border-radius:5px;cursor:pointer;}
    .start,.restart{background-color:green;}
    .restart{display:none;}
    .stop{display:none;background-color:red;}
    .grade{margin:10px;}
    .grade div{float:left;width:100px;height:30px;line-height:30px;border:1px solid #ccc;text-align:center;margin-left:10px;cursor:pointer;}
    var timer=null;
    var timer2=null;
    var step=60;
    //清除定时器
    var date=60;
    function clear(){
        window.clearTimeout(timer);
        timer=0;
        window.clearTimeout(timer2);
        timer2=0;
    }
    //获取随机数
    function getRandom(n,m){
        n=Number(n);
        m=Number(m);
        if(isNaN(n)||isNaN(m)){
            return Math.random();
        }
        if(n>m){
            var t=n;
            n=m;
            m=t;
        }
        return Math.round(Math.random()*(m-n)+n);
    }
    //给container添加内容
    var str="";
    var ary=["black","white"];
    str+='<table>';
    for(var i=0;i<200;i++){
        str+='<tr>'+'<td class="'+ary[getRandom(0,1)]+'"></td>'+'<td class="'+ary[getRandom(0,1)]+'"></td>'+'<td class="'+ary[getRandom(0,1)]+'"></td>'+'<td class="'+ary[getRandom(0,1)]+'"></td>'+'<td class="'+ary[getRandom(0,1)]+'"></td>'+'</tr>';
        /*if($("td").hasClass("black")){
            $(this).siblings().attr("class","white");
            console.log(1);
        }*/
    }
    str+='</table>';
    $(".container").html(str);
    if($("td").hasClass("black")){
        $(this).siblings().attr("class","white");
        console.log(1);
    }
    var noticeHTML=$(".container").html();
    //选择等级
    $(".grade div").on("click",function(){
        $(this).siblings().hide();
        $(this).addClass("clicked");
        $(this).siblings().removeClass("clicked");
    });
    $(".grade1").on("click",function(){
        date=60;
    });
    $(".grade2").on("click",function(){
        date=30;
    });
    $(".grade3").on("click",function(){
        date=6;
    });
    //无缝滚动
    function move(){
        var val1=$(".container").scrollTop();
        $(".container").scrollTop(val1+1);
        var val2=$(".container").scrollTop();
        if(val1===val2){
            $(".container").html($(".container").html()+noticeHTML);
            $(".black").one("click",black);
        }
        timer=window.setTimeout(move,date);
    }
    //所用时间
    function move1(){
        step-=1;
        $("h5 span").html(step);
        timer2=window.setTimeout(move1,1000);
        if($("h5 span").html()<=0){
            clear();
            white();
        }
    }
    //开始游戏
    $(".start").on("click",function(){
    
        if($(".grade div").hasClass("clicked")){
             move();
             move1();
            $(this).css("display","none");
            $(".restart").css("display","block");
            $(".stop").css("display","block");
            $(this).addClass("clicked");
        }else{
            layer.open({
                type: 1,
                area: ['200px', '160px'],
                //shadeClose: true, //点击遮罩关闭
                content: '<div style="padding:20px;text-align:center;">请选择游戏级别!!!</div>'
            });
        }
    
    });
    //重新开始
    $(".restart").on("click",function(){
        window.location.reload();
    });
    //暂停游戏
    $(".stop").on("click",function(){
        clear();
        $(".start").html("继续游戏");
        $(".start").css("display","block");
    });
    var score=0;
    //点击黑块,分数加1
    function black(){
        score+=1;
        $(this).unbind("click");
    }
    //点击白块,游戏结束
    function white(){
        if($(".start").hasClass("clicked")){//开始游戏后才会有弹出框
            layer.open({
                type: 1,
                area: ['200px', '200px'],
                //shadeClose: true, //点击遮罩关闭
                content: '<div style="padding:20px;">' +
                    '<p>game over!</p>' +'<p style="margin-top:20px;">您的总用时'+(60-$("h5 span").html())+'秒'+'</p>'+'<p style="margin-top:20px;">您的得分是'+score+'分'+'</p>'+'</div>'
            });
            $(".stop").css("display","none");
            clear();
        }
    
    }
    $(".black").one("click",black);
    $(".container").one("click",".white",white);

    本人前端菜鸟一个,闲来无事写了一个别踩白块的游戏练习代码编写能力,望大家多多指教。
    布局我采用的是动态添加一段内容,并随机分配给元素黑色或白色的class名称。然后重复内容,通过无缝滚动效果循环播放。

    开始游戏之前需选择游戏等级,共分为三级(初级、中级、高级),游戏过程中您可进行暂停游戏、继续游戏、重新开始等操作。

    游戏最长时间为60秒。超过60秒游戏自动结束。

    每点击一个黑块,分数加1,每个黑块只能点击一次,也就是同一个黑块不管点击几次,分数值只加1。

    当点到白块后,通过弹框的形式告知用户游戏结束和所得分数、所用时间等。

    点到白块后,白块和黑块都不能再点击了,不过您可以选择重新开始游戏

  • 相关阅读:
    JavaScript的数据类型和运算符总结
    html&css精华总结
    lambda表达式&map&filter&yield
    tp5.1 order函数排序无效和orderRaw自定义处理排序
    tp5.1 多对多关联,添加中间表自动时间戳
    mysql索引类型和索引方法
    a标签跨域下载文件,解决download失效问题
    js读取input[type=file]图片,并实时预览
    如何禁止浏览器自动填充
    php 一维数组的合并和去重
  • 原文地址:https://www.cnblogs.com/dongxiaolei/p/5692450.html
Copyright © 2011-2022 走看看