var x = y = snakeUnitSize;
window.setInterval(putFood, speed);
为
window.setInterval(snakeMove, speed);
function snakeMove(){
x = x + snakeUnitSize;
game.fillStyle = "#006699";
game.strokeStyle = "#006699";
game.fillRect(x, y, snakeUnitSize, snakeUnitSize);
}
<script type="text/javascript">
// v1 ... v2
//蛇最开始出没的地方
var x = y = snakeUnitSize; //v3
window.onload = function(){ //v1
//v1 ... v2
//window.setInterval(putFood, speed); //v2
//固定时间间隔执行,每隔speed毫秒执行snakeMove功能
window.setInterval(snakeMove, speed); //v3
}
/*
* 让蛇运动的功能,每次走一个蛇身单位
*/
function snakeMove(){ //v3
//每次水平方向移动一个蛇节
x = x + snakeUnitSize; //v3
//内部填充颜色
game.fillStyle = "#006699"; //v3
//边框颜色
game.strokeStyle = "#006699"; //v3
//根据新得到的蛇头绘制位置,绘制蛇头
game.fillRect(x, y, snakeUnitSize, snakeUnitSize); //v3
}
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Greedy Snake</title>
<style type="text/css">
div { /*v1*/
width:400px;
margin:0 auto;
}
canvas { /*v1*/
background:#abcdef;
border:1px solid #000000;
}
</style>
<script type="text/javascript">
var field; //v1
var game; //v1
var fieldWidth; //v2
var fieldHeight; //v2
var speed = 160; //v2
var foodX = foodY = 0; //v2
var snakeUnitSize = 8; //v2
var x = y = snakeUnitSize; //v3
window.onload = function(){ //v1
field = document.getElementById("field"); //v1
game = field.getContext("2d"); //v1
fieldWidth = field.width; //v2
fieldHeight = field.height; //v2
window.setInterval(snakeMove, speed); //v3
}
function snakeMove(){ //v3
x = x + snakeUnitSize; //v3
game.fillStyle = "#006699"; //v3
game.strokeStyle = "#006699"; //v3
game.fillRect(x, y, snakeUnitSize, snakeUnitSize); //v3
}
function putFood(){ //v2
var size = snakeUnitSize; //v2
game.fillStyle = "#ff0000"; //v2
game.strokeStyle = "#000000"; //v2
foodX = Math.ceil(Math.random() * (fieldWidth/size)); //v2
foodY = Math.ceil(Math.random() * (fieldHeight/size)); //v2
game.fillRect(foodX*size, foodY*size, size, size); //v2
}
</script>
</head>
<body>
<!-- v1 -->
<h2 align="center">Greedy Snake</h2>
<!-- v1 -->
<div>
<!-- v1 -->
<canvas id="field" width="400" height="600">
This is the field that snake snaking.
</canvas>
</div>
</body>
</html>