java做别踩白块儿小游戏代码_原生JS实现别踩白块小游戏(一)

本文分享了如何使用原生JavaScript开发别踩白块小游戏,适合前端初学者实践,通过代码示例帮助理解游戏逻辑。后续文章将深入探讨具体实现。
摘要由CSDN通过智能技术生成

点击蓝字5f77642be56c53b7290fcdaf855bccbe.png关注我们!每天获取最新的编程小知识!

678bb72642ae2c1e97a1936ca98c3523.gif

源 / php中文网      源 / www.php.cn

对于前端开发人员来说,闲暇之余自己开发个小游戏打发时间,也是对自己基础技术的一种应用考验。那么别踩白块小游戏,相信大家并不陌生,这个小游戏我们可以通过原生js来实现,即便是前端初学者也可以轻松完成。

f21b3c208bba9b72bd25b4293f11dee7.png

(视频版请点击本文末尾左下角:

下面我们就给大家分享一个原生js实现别踩白块小游戏的方法。

代码实例如下:

"en">

    "UTF-8">

    Title

 * {

        margin: 0;

 padding: 0;

 }

    .box {

        margin: 50px auto 0 auto;

 width: 400px;

 height: auto;

 border: solid 1px #222;

 }

    #cont {

        width: 400px;

 height: 600px;

 position: relative;

 overflow: hidden;

 }

    #go {

        width: 100%;

 height: 600px;

 position: absolute;

 top: 0;

 font: 700 60px '微软雅黑';

 text-align: center;

 z-index: 99;

 }

    #go span {

        cursor: pointer;

 background-color: #fff;

 border-bottom: solid 1px #222;

 }

    #main {

        width: 400px;

 height: 600px;

 position: relative;

 top: -150px;

 }

    .row {

        width: 400px;

 height: 150px;

 }

    .row div {

        width: 99px;

 height: 149px;

 border: solid 1px #222;

 float: left;

 border-top-width: 0;

 border-left-width: 0;

 cursor: pointer;

 }

    #count {

        border-top: solid 1px #222;

 width: 400px;

 height: 50px;

 font: 700 36px/50px '微软雅黑';

 text-align: center;

 }

class="box">

    

"cont">

        

"go">

            点击开始

        

"main">

    

"count">

 var main = document.getElementById('main')

    go = document.getElementById('go')

    count = document.getElementById('count');

 cols = ['#1AAB8A', '#E15650', '#121B39', '#80A84E'];

 function CDiv(classname) {

        var Div = document.createElement('div')

        index = Math.floor(Math.random() * 4)

        Div.className = classname

        for (var i = 0; i < 4; i++) {

            var iDiv = document.createElement('div')

            Div.appendChild(iDiv)

        }

        if (main.children.length == 0) {

            main.appendChild(Div);

 } else {

            main.insertBefore(Div, main.children[0]);

 }

        Div.children[index].style.backgroundColor = cols[index];

 Div.children[index].className = "i";

 }

    function move(obj) {

        //默认速度与计分

 var speed = 5, num = 0;

 obj.timer = setInterval(function () {

            //速度

 var step = parseInt(getComputedStyle(obj, null)['top']) + speed;

 obj.style.top = step + 'px'

 if (parseInt(getComputedStyle(obj, null)['top']) >= 0) {

                CDiv('row');

 obj.style.top = -150 + 'px';

 }

            if (obj.children.length == 6) {

                for (var i = 0; i < 4; i++) {

                    if (obj.children[obj.children.length - 1].children[i].className == 'i') {

                        //游戏结束

 obj.style.top = '-150px';

 count.innerHTML = '游戏结束,最高得分: ' + num;

 //关闭定时器

 clearInterval(obj.timer);

 //显示开始游戏

 go.children[0].innerHTML = '游戏结束';

 go.style.display = "block";

 }

                }

                obj.removeChild(obj.children[obj.children.length - 1]);

 }

            //点击与计分

 obj.onmousedown = function (event) {

                //点击的不是白盒子

 // 兼容IE

 event = event || window.event;

 if ((event.target ? event.target : event.srcElement).className == 'i') {

                    //点击后的盒子颜色

 (event.target ? event.target : event.srcElement).style.backgroundColor = "#bbb";

 //清除盒子标记

 (event.target ? event.target : event.srcElement).className = '';

 //计分

 num++;

 //显示得分

 count.innerHTML = '当前得分: ' + num;

 }

                else {

                    //游戏结束

 obj.style.top = 0;

 count.innerHTML = '游戏结束,最高得分: ' + num;

 //关闭定时器

 clearInterval(obj.timer);

 //显示开始游戏

 go.children[0].innerHTML = '游戏结束';

 go.style.display = "block";

 }

                //盒子加速

 if (num % 10 == 0) {

                    speed++;

 }

            }

            //松开触发停止

 obj.onmouseup = function (event) {

            }

        }, 20)

    }

    go.children[0].onclick = function () {

        if (main.children.length) {

            //暴力清楚main里面所有盒子

 main.innerHTML = '';

 }

        //清空计分

 count.innerHTML = '游戏开始';

 //隐藏开始盒子

 this.parentNode.style.display = "none";

 move(main);

 }

前台效果如下图:

659571da3889c88814a047e2a7943bd9.png

当我们点击开始时,游戏开始。点击有颜色的方块即可得分,并且随着分数的增加,页面方块移动的速度也会加快。

9a6311bd6294149a676ce511dd304035.png

点击到白块时,游戏结束。

748f8e8bc424c43e2e3028bf4d34c190.png

本篇文章就是关于原生js实现别踩白块小游戏的方法分享介绍,感兴趣的朋友可以直接复制上述代码,在本地进行测试。那么在后期的文章中,会继续为大家介绍别踩白块小游戏具体的实现方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值