css+js=贪吃蛇简版

简介: css+js=贪吃蛇简版

先上简版贪吃蛇(即移动方块)xmind思维导图



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <style>
        .box {
            width: 30px;
            height: 30px;
            background-color: pink;
            position: fixed;
            top: 50px;
            left: 50px;
        }
    </style>
    <div id="lists"  class="box" style="top: 50px;left: 50px;">
    </div>
    <script>
        var lists = document.getElementById("lists")
        var x = 5;
        var y = 0;
        console.log(parseInt(lists.style.top));
        console.log(lists.style.left);
        setInterval(snake, 20);
        function snake() {
            var div=document.createElement("div");
            div.className="box";//在这里添加类,可以使用style里的设置
            lists.style.left = parseInt(lists.style.left) + x + "px";
            lists.style.top = parseInt(lists.style.top) + y + "px";
        }
        window.onkeydown = function (event) {
            var key = event.keyCode;
            switch (key) {
                // 左边
                case 37:
                    x = -5;
                    y = 0;
                    break;
                // 上边
                case 38:
                    x = 0;
                    y = -5;
                    break;
                // 右边
                case 39:
                    x = 5;
                    y = 0;
                    break;
                // 下边
                case 40:
                    x = 0;
                    y = 5;
                    break;
            }
        }
    </script>
</body>
</html>


版本1在codepen里的演示结果:


https://codepen.io/1980450400/pen/YzGvLVz


再逐步增加难度



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 20px;
            height: 20px;
            background-color: #000;
            position: fixed;
            top:50px;
            left:50px;
        }
    </style>
</head>
<body>
    <div id="lists">
        <!-- <div class="box" style="top:50px;left:50px;"></div> -->
        <!-- <div>11</div>
        <div>10</div>
        <div>4</div>
        <div>4</div>
        <div>4</div>
        <div>4</div>
        <div>4</div>
        <div>3</div>
        <div>2</div>
        <div>1</div> -->
    </div>
    <script>    
        var lists = document.getElementById("lists");
        var x = 20; //控制左右 left
        var y = 0; //控制上下 top
        var dx = 50;
        var dy = 50;
        // 定时器
        setInterval(boxgame, 100);
        function boxgame(){
            // box.style.left = parseInt(box.style.left) + x + "px";
            // box.style.top = parseInt(box.style.top) + y + "px";
            // 创建小盒子
            var div = document.createElement("div");
            div.className = "box";
            // 移动位置
            div.style.left = dx + x + "px";
            div.style.top = dy + y + "px";
            lists.insertBefore(div,lists.children[0]);
            // 控制蛇身长度 10
            if(lists.children.length > 10){
                for(var i = 11; i < lists.children.length;i++){
                    lists.removeChild(lists.children[i]); 
                }
            }
            // 记录上一个位置
            dx = dx + x;
            dy = dy + y;
        }
        window.onkeydown = function(event){
            var key = event.keyCode;
            // 37左 39右  left x 
            // 38上 40下  top y
            switch(key){
                case 37:
                    console.log("左");
                    x = -20;
                    y = 0;
                    break;
                case 39:
                    console.log("右");
                    x = 20;
                    y = 0;
                    break;
                case 38:
                    console.log("上");
                    x = 0;
                    y = -20;
                    break;
                case 40:
                    console.log("下");
                    x = 0;
                    y = 20;
                    break;
            }
        }
    </script>
</body>
</html>


版本2在codepen里的演示结果:https://codepen.io/1980450400/pen/RwGJyeR



后面会逐步完善

相关文章
|
1月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
45 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
2月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
151 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
2月前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
64 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
2月前
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
101 33
|
3月前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
124 24
|
3月前
|
JavaScript 前端开发
页面滚动触发css3动画js插件
delighters.js是一款页面滚动触发css3动画js插件。该js插件可以在页面向下滚动时,为进入浏览器视口的元素制作各种炫酷的CSS3动画效果。
62 13
|
3月前
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
64 3
|
4月前
|
JavaScript 前端开发
js+jquery实现贪吃蛇经典小游戏
本项目采用HTML、CSS、JavaScript和jQuery技术,无需游戏框架支持。通过下载项目文件至本地,双击index.html即可启动贪吃蛇游戏。游戏界面简洁,支持方向键控制蛇移动,空格键实现游戏暂停与恢复功能。
99 14
|
4月前
|
前端开发 JavaScript
如何在 JavaScript 中访问和修改 CSS 变量?
【10月更文挑战第28天】通过以上方法,可以在JavaScript中灵活地访问和修改CSS变量,从而实现根据用户交互、页面状态等动态地改变页面样式,为网页添加更多的交互性和动态效果。在实际应用中,可以根据具体的需求和场景选择合适的方法来操作CSS变量。
149 12
|
4月前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
优化CSS和JavaScript加载

热门文章

最新文章