`
chicony
  • 浏览: 122160 次
  • 性别: Icon_minigender_1
  • 来自: 孝感
社区版块
存档分类
最新评论

贪吃蛇

阅读更多
<!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>
    <title></title>
    <link href="MySnkes.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" language="javascript">
        /*
        贪吃蛇
        */
        /*
        全局变量
        */
        //通过ID获取元素的方法
        var $ = document.getElementById;
        var timeID;
        var Game = {
            //游戏状态(stop,run,dead)
            gameState: "stop",
            //移动状态有"向上(up)","向下(down)","向左(left)","向右(right)",
            moveState: "left",
            lastMoveState: "left",
            foodLeft: null,
            foodTop: null,
            step: 1,
            score: 0,
            //蛇数组
            snake: [],
            //是否吃食物
            hasEat: false,
            //移动速度
            speed: 500,
            //食物
            food: null,
            //创建食物
            initFood: function() {
                Game.food = document.createElement("div");
                Game.food.style.position = "absolute";
                Game.food.style.left = Game.randomNum("left") + "px"
                Game.food.style.top = Game.randomNum("top") + "px";
                Game.food.style.backgroundColor = "Green";
                Game.foodLeft = parseInt(Game.food.style.left);
                Game.foodTop = parseInt(Game.food.style.top);
                Game.food.style.width = "10px";
                Game.food.style.height = "10px";

                var gameInterface = document.getElementById("gameInterface");
                gameInterface.appendChild(Game.food);

            },
            //根据方向返回不同的数据
            randomNum: function(way) {
                //假如为top返回5-495并且相隔10
                if (way == "top") {
                    return parseInt(parseInt(Math.random() * 49) + "5");
                }
                //为left返回5-595相隔10的数
                else {
                    return parseInt(parseInt(Math.random() * 59) + "5");
                }

            },
            //初始化蛇
            oneSnakePoint: function(t, l) {
                var div = document.createElement("div");
                div.style.width = "10px";
                div.style.height = "10px";
                div.style.backgroundColor = "Red";
                div.style.position = "absolute";
                div.style.top = t + "px";
                div.style.left = l + "px";
                return div;
            },
            snakeInit: function() {
                for (var i = 0; i < 3; i++) {
                    var div = Game.oneSnakePoint(245, 285 + i * 10);
                    Game.snake.push(div);
                    var gameInterface = document.getElementById("gameInterface");
                    gameInterface.appendChild(div);
                }
            },
            //移动
            move: function() {
                //假如游戏状态为移动时
                if (Game.gameState == "run") {
                    if (Game.snake[0].style.top == "5px" || Game.snake[0].style.top == "495px" || Game.snake[0].style.left == "5px" || Game.snake[0].style.left == "595px") {
                        Game.gameState = "dead";
                        alert("你失败了");
                    }
                    else {
                        //--------吃食物---------------------------
                        var top0 = parseInt(Game.snake[0].style.top);
                        var left0 = parseInt(Game.snake[0].style.left);
                        if (((top0 == Game.foodTop || top0 == Game.foodTop + 10) && left0 == Game.foodLeft) || ((left0 == Game.foodLeft || left0 == Game.foodLeft + 10) && top0 == Game.foodTop)) {
                            document.getElementById("gameInterface").removeChild(Game.food);
                            //获取最后一个节点
                            Game.initFood();
                            Game.score += 10;
                            document.getElementById("socket").innerHTML = Game.score + "分";
                            //标记吃了
                            Game.hasEat = true;
                        }
                        //------------------------------------------
                        //假如运行状态为上
                        if (Game.moveState == "up") {
                            var div1 = [];
                            for (var i = 0; i < Game.snake.length; i++) {
                                //假如是第一个节点
                                if (i == 0) {
                                    div1[0] = Game.snake[i].style.top;
                                    div1[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.top = (parseInt(Game.snake[i].style.top) - 10) + "px";

                                }
                                //除第一个节点外
                                else {
                                    var div2 = [];
                                    div2[0] = Game.snake[i].style.top;
                                    div2[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.top = div1[0];
                                    Game.snake[i].style.left = div1[1];
                                    div1 = div2;
                                }
                            }

                        }
                        //向下
                        else if (Game.moveState == "down") {
                            var div1 = [];
                            for (var i = 0; i < Game.snake.length; i++) {
                                //假如是第一个节点
                                if (i == 0) {
                                    div1[0] = Game.snake[i].style.top;
                                    div1[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.top = (parseInt(Game.snake[i].style.top) + 10) + "px";

                                }
                                //假如是第一个节点
                                else {
                                    var div2 = [];
                                    div2[0] = Game.snake[i].style.top;
                                    div2[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.top = div1[0];
                                    Game.snake[i].style.left = div1[1];
                                    div1 = div2;
                                }
                            }
                        }
                        //向左
                        else if (Game.moveState == "left") {
                            var div1 = [];
                            for (var i = 0; i < Game.snake.length; i++) {
                                if (i == 0) {
                                    div1[0] = Game.snake[i].style.top;
                                    div1[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.left = (parseInt(Game.snake[i].style.left) - 10) + "px";

                                }
                                else {
                                    var div2 = [];
                                    div2[0] = Game.snake[i].style.top;
                                    div2[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.top = div1[0];
                                    Game.snake[i].style.left = div1[1];
                                    div1 = div2;
                                }
                            }
                        }
                        // 向右
                        else if (Game.moveState == "right") {
                            var div1 = [];
                            for (var i = 0; i < Game.snake.length; i++) {
                                if (i == 0) {
                                    div1[0] = Game.snake[i].style.top;
                                    div1[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.left = (parseInt(Game.snake[i].style.left) + 10) + "px";

                                }
                                else {
                                    var div2 = [];
                                    div2[0] = Game.snake[i].style.top;
                                    div2[1] = Game.snake[i].style.left;
                                    Game.snake[i].style.top = div1[0];
                                    Game.snake[i].style.left = div1[1];
                                    div1 = div2;
                                }
                            }
                        }
                        if (Game.hasEat) {
                            var newSnakePoint = Game.oneSnakePoint(parseInt(div1[0]), parseInt(div1[1]));
                            Game.snake.push(newSnakePoint);
                            var gameInterface = document.getElementById("gameInterface");
                            gameInterface.appendChild(newSnakePoint);
                            Game.hasEat = false;

                        }
                    }
                }
                //游戏状态为停止
                else if (Game.gameState == "stop") {

                }
                //游戏状态为失败
                else if (Game.gameState == "dead") {

                }

            },
            //开始游戏
            startGame: function() {
                Game.initFood();
                Game.snakeInit();
                document.onkeydown = function(e) {
                    //向上
                    if (event.keyCode == 38) {
                        if (Game.moveState == "down" || Game.moveState == "up") {
                            return false;
                        }
                        else {
                            Game.lastMoveState = Game.moveState;
                            Game.moveState = "up";
                        }
                        return false;
                    }
                    //向左
                    else if (event.keyCode == 37) {
                        if (Game.moveState == "right" || Game.moveState == "left") {
                            return false;
                        }
                        else {
                            Game.lastMoveState = Game.moveState;
                            Game.moveState = "left";
                        }
                        return false;
                    }
                    //向右
                    else if (event.keyCode == 39) {
                        if (Game.moveState == "left" || Game.moveState == "right") {
                            return false;
                        }
                        else {
                            Game.lastMoveState = Game.moveState;
                            Game.moveState = "right";
                        }
                        return false;
                    }
                    //向下
                    else if (event.keyCode == 40) {
                        if (Game.moveState == "up" || Game.moveState == "down") {
                            return false;
                        }
                        else {
                            Game.lastMoveState = Game.moveState;
                            Game.moveState = "down";
                        }
                        return false;
                    }
                    //空格
                    else if (event.keyCode == 32) {
                        //假如游戏为停止状态
                        if (Game.gameState == "stop") {
                            Game.gameState = "run";
                            timeID = setInterval(Game.move, Game.speed);
                            return false;
                        }
                        //假如游戏为运行状态
                        else if (Game.gameState == "run") {
                            Game.gameState = "stop";
                            clearInterval(timeID);
                            return false;
                        }
                        //假如游戏为失败状态
                        else if (Game.gameState == "dead") {
                            Game.gameState = "stop";
                            for (var i = 0; i < Game.snake.length; i++) {
                                document.getElementById("gameInterface").removeChild(Game.snake[i]);
                            }
                            Game.snake = [];
                            Game.snakeInit();
                            return false;
                        }
                    }
                }
            }
        }

        /*
        初始化调用
        */
        window.onload = Game.startGame;

        /****************************************
        调节速度
        *****************************************/
        //鼠标是否按下
        var mouseOn = false;
        var mouseX = "";
        document.onmousemove = mouseMove;
        document.onmouseup = mouseUp;
        //鼠标按下
        function mouseDown() {
            mouseOn = true;
            mouseX = event.clientX;
        }
        //鼠标抬起
        function mouseUp() {
            mouseOn = false;

        }

        //鼠标移动
        function mouseMove() {
            if (mouseOn) {
                var cutX = parseInt(event.clientX) - parseInt(mouseX);
                var blockLeft = parseInt(document.getElementById("block").style.left);
                if ((blockLeft + cutX) > 613 && (blockLeft + cutX) < 748) {
                    document.getElementById("block").style.left = (blockLeft + cutX) + "px";
                    mouseX = event.clientX;
                    Game.speed = 500 - 2*((parseInt(document.getElementById("block").style.left) - 613));
                    document.getElementById("speed").innerHTML = Game.speed;
                    if (Game.gameState == "run") {
                        clearInterval(timeID);
                        timeID = setInterval(Game.move, Game.speed);
                    }
                }
            }
        }
    </script>
</head>
<body  style=" margin:0px,0px,0px,0px; padding:0px,0px,0px,0px">
<div id="Interface" style=" position:absolute; left:0px; top:0px; width:1024px">
<div id="gameInterface" style=" width:600px; height:500px; float:left; border:solid 5px #999999">

</div>
<div id="gameInfor" style=" width:180px; height:500px; float:left; background-color:#CFD4C5">
<div style=" color:#FF3622; font-size:24px; text-align:center">贪吃蛇</div>
<div style=" margin-top:10px">得分:<span id="socket" style=" margin-left:20px">0分</span></div>
<div style=" margin-top:10px">速度:<span id="speed" style=" margin-left:20px">500</span><div style=" border-top:solid 3px red; margin-top:10px; width:150px "></div></div>
<div id="block" style=" position:absolute; width:15px; height:17px; background-color:#000000; cursor:hand; top: 88px; left: 613px;"   onmousedown="mouseDown()" ></div>
</div>
</div>
</body>
</html>

 

分享到:
评论

相关推荐

    java小游戏 贪吃蛇 java小游戏 贪吃蛇

    java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 贪吃蛇java小游戏 ...

    13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码13...

    c语言 贪吃蛇!贪吃蛇 c语言贪吃蛇

    c语言 贪吃蛇!贪吃蛇 c语言贪吃蛇,c语言 贪吃蛇!贪吃蛇 c语言贪吃蛇,c语言 贪吃蛇!贪吃蛇 c语言贪吃蛇

    最新单片机仿真 8x8点阵做的贪吃蛇游戏

    最新单片机仿真 8x8点阵做的贪吃蛇游戏最新单片机仿真 8x8点阵做的贪吃蛇游戏最新单片机仿真 8x8点阵做的贪吃蛇游戏最新单片机仿真 8x8点阵做的贪吃蛇游戏最新单片机仿真 8x8点阵做的贪吃蛇游戏最新单片机仿真 8x8...

    (深信息)用python实现贪吃蛇小游戏毕业设计报告 .docx

    (深信息)用python实现贪吃蛇小游戏毕业设计报告 .docx(深信息)用python实现贪吃蛇小游戏毕业设计报告 .docx(深信息)用python实现贪吃蛇小游戏毕业设计报告 .docx(深信息)用python实现贪吃蛇小游戏毕业设计报告 .docx...

    PYTHON做贪吃蛇代码

    PYTHON做贪吃蛇代码 PYTHON做贪PYTHONPYTHON做贪吃蛇代码做贪吃蛇代码 吃蛇代码 PYTHON做贪吃蛇代码PYTHON做贪吃蛇代码PYPYTHON做贪吃蛇代码THON做贪吃蛇代码PYTHON做贪吃蛇代码PYTHON做PYTHON做贪吃蛇代码贪吃蛇...

    Python本科毕业设计项目源代码用pygame模块设计并运行贪吃蛇小游戏.zip

    Python本科毕业设计项目源代码用pygame模块设计并运行贪吃蛇小游戏Python本科毕业设计项目源代码用pygame模块设计并运行贪吃蛇小游戏Python本科毕业设计项目源代码用pygame模块设计并运行贪吃蛇小游戏,Python本科...

    jQuery贪吃蛇网页版游戏代码

    jQuery贪吃蛇网页版游戏代码,贪吃蛇网页版游戏代码基于jquery.1.11.3.min.js制作,贪吃蛇游戏是一款经典的益智游戏,有PC和手机等多平台版本,既简单又耐玩.Query网页版贪吃蛇游戏,带得分排行榜,交互的贪吃蛇游戏...

    汇编贪吃蛇汇编贪吃蛇汇编贪吃蛇

    汇编贪吃蛇汇编贪吃蛇汇编贪吃蛇汇编贪吃蛇汇编贪吃蛇汇编贪吃蛇

    appinventor超简易贪吃蛇源码.rar

    绝对原创的贪吃蛇,没有借助任何人的帮助,所以可能在设计上与他人不同。这个是在appinventor 官方广州服务器制作的简易贪吃蛇,只用了球形精灵和画布为主要插件,等待完善,这个包括apk应用和aia源码,适用于各位...

    appinventor超简易贪吃蛇(只含apk).apk

    绝对原创的贪吃蛇,没有借助任何人的帮助,所以可能在设计上与他人不同。这个是在appinventor 官方广州服务器制作的简易贪吃蛇,只用了球形精灵和画布为主要插件,等待完善,这个是apk安卓应用,不包括aia源码,适用...

    汇编贪吃蛇 汇编贪吃蛇

    汇编贪吃蛇 汇编贪吃蛇 汇编贪吃蛇 汇编贪吃蛇

    C语言课本贪吃蛇.cpp

    C编程——实现《贪吃蛇》大作战游戏:讲解的是用C语言写一款贪吃蛇的小游戏,希望对各位在学习之路上有很好的帮助!谢谢!C编程——实现《贪吃蛇》大作战游戏:讲解的是用C语言写一款贪吃蛇的小游戏,希望对各位在...

    贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码

    贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码贪吃蛇代码

    100行Python代码的贪吃蛇小游戏源码.zip

    100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码...

    [Android游戏源码]-简单的贪吃蛇源码.rar_Android游戏源码_android_android 贪吃蛇_贪吃蛇_贪

    简单的贪吃蛇源码,安卓游戏源码,有需要的下载,仅供参考

    Labview贪吃蛇课程设计

    设计了一个不同的贪吃蛇,相较于普通的贪吃蛇,这个更加富有趣味性,可以作为大学生的Labview虚拟仪器课程设计

    基于Android的贪吃蛇游戏开发

    在手机屏幕上设计一个贪吃蛇游戏,屏幕四周被绿色苹果包围,中间有贪吃蛇和随机产生的苹果,贪吃蛇的头是黄色的,身子是红色的。玩家按上、下、左、右键盘控制贪吃蛇在屏幕上向上、下、左、右移动,贪吃蛇只能向左、...

    JAVA本科期末大作业贪吃蛇小游戏源码.zip

    JAVA本科期末大作业贪吃蛇小游戏源码JAVA本科期末大作业贪吃蛇小游戏源码JAVA本科期末大作业贪吃蛇小游戏源码JAVA本科期末大作业贪吃蛇小游戏源码JAVA本科期末大作业贪吃蛇小游戏源码JAVA本科期末大作业贪吃蛇小游戏...

Global site tag (gtag.js) - Google Analytics