原生Js做个贪吃蛇

2017-12-03  本文已影响39人  报告老师

<!doctype html> 

<html> 

<body> 

    <canvas id="can" width="400" height="400" style="background: Black"></canvas> 

    <script> 

        var sn = [ 42, 41 ], dz = 43, fx = 1, n, ctx = document.getElementById("can").getContext("2d"); 

        function draw(t, c) { 

            ctx.fillStyle = c; 

            ctx.fillRect(t % 20 * 20 + 1, ~~(t / 20) * 20 + 1, 18, 18); 

        } 

        document.onkeydown = function(e) { 

            fx = sn[1] - sn[0] == (n = [ -1, -20, 1, 20 ][(e || event).keyCode - 37] || fx) ? fx : n 

        }; 

        !function() { 

            sn.unshift(n = sn[0] + fx); 

            if (sn.indexOf(n, 1) > 0 || n<0||n>399 || fx == 1 && n % 20 == 0 || fx == -1 && n % 20 == 19) 

                return alert("GAME OVER"); 

            draw(n, "Lime"); 

            if (n == dz) { 

                while (sn.indexOf(dz = ~~(Math.random() * 400)) >= 0); 

                draw(dz, "Yellow"); 

            } else 

                draw(sn.pop(), "Black"); 

                setTimeout(arguments.callee, 130); 

        }(); 

    </script> 

</body> 

</html> 

效果图

原生Js做个贪吃蛇
上一篇 下一篇

猜你喜欢

热点阅读