版权声明:本文为博主原创文章,允许转载,但转载必须注明出处并附带首发链接 https://blog.csdn.net/Nana_9457/article/details/86570234
源码见github: https://github.com/NanaYang007/Canvas__DoodleSnake
喜欢请给个star,谢谢~
一起来实现一个贪吃蛇吧~
0. 创建canvas获取绘制环境
首先在网页中引入canvas标签,注意有些浏览器不支持canvas,可以给出提示。
<html>
<meta charset="utf8">
<style>
body {
background-color: black;
}
canvas {
background-color: white;
}
</style>
<body>
<canvas id="mySnake" width="400" height="300">
<span>该浏览器不支持canvas</span>
</canvas>
<script>
var cv = document.getElementById("mysnake");
var ctx = cv.getContext("2d");
</script>
</body>
</html>
1. 绘制方块
// 小方块的大小设置为常量,便于修改
const STEP = 10;
// 四个参数分别为(距canvas左边缘距离、距上边缘距离、矩形宽、矩形高)
ctx.fillRect(10, 10, STEP, STEP);
2. 计时器
贪吃蛇作为一个动态游戏,需要一个定时器
⚠️设置高度时不能使用var top = 0
,top是window上的一个对象,会出现canvas不显示动态方块的bug(控制台无报错)
var blockLeft = STEP;
// 变量名不能设置为“top”
var blockTop = STEP;
var stepLength = STEP;
setInterval(function(){
// 每次重画前需要清画布
ctx.clearRect(cv.offsetLeft