色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

html5簡短貪吃蛇代碼

錢諍諍2年前9瀏覽0評論

HTML5是一個(gè)重要的前端開發(fā)語言,實(shí)現(xiàn)了許多有趣的應(yīng)用。其中,貪吃蛇游戲是最經(jīng)典的應(yīng)用之一。下面是一個(gè)簡短版本的HTML5貪吃蛇游戲代碼:

<html>
<head>
<title>貪吃蛇</title>
<style>
#canvas {
border: 1px solid #333;
}
</style>
</head>
<body>
<canvas id="canvas" width="400" height="400"></canvas>
<script>
// 創(chuàng)建畫布和上下文
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// 設(shè)定初始狀態(tài)
var snake = [{x: 100, y: 100}];
var direction = 'right';
var food = {x: Math.floor(Math.random() * 400), y: Math.floor(Math.random() * 400)};
var score = 0;
// 繪制蛇和食物
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = '#00a';
for (var i = 0; i < snake.length; i++) {
ctx.fillRect(snake[i].x, snake[i].y, 10, 10);
}
ctx.fillStyle = '#f00';
ctx.fillRect(food.x, food.y, 10, 10);
ctx.fillStyle = '#000';
ctx.fillText('Score: ' + score, 10, 20);
}
// 更新狀態(tài)
function update() {
// 移動(dòng)蛇
var head = {x: snake[0].x, y: snake[0].y};
switch (direction) {
case 'right': head.x += 10; break;
case 'left': head.x -= 10; break;
case 'up': head.y -= 10; break;
case 'down': head.y += 10; break;
}
snake.unshift(head);
if (head.x === food.x && head.y === food.y) { // 吃到食物
food = {x: Math.floor(Math.random() * 400), y: Math.floor(Math.random() * 400)};
score += 10;
} else { // 沒有吃到食物
snake.pop();
}
// 是否碰到邊界
if (head.x < 0 || head.x >= canvas.width || head.y < 0 || head.y >= canvas.height) {
clearInterval(intervalId);
alert('Game Over, Your Score is ' + score);
}
// 是否撞到自己的身體
for (var i = 1; i < snake.length; i++) {
if (head.x === snake[i].x && head.y === snake[i].y) {
clearInterval(intervalId);
alert('Game Over, Your Score is ' + score);
break;
}
}
}
// 處理鍵盤事件
function handleKeyDown(event) {
switch (event.keyCode) {
case 37: // left
if (direction !== 'right') {
direction = 'left';
}
break;
case 38: // up
if (direction !== 'down') {
direction = 'up';
}
break;
case 39: // right
if (direction !== 'left') {
direction = 'right';
}
break;
case 40: // down
if (direction !== 'up') {
direction = 'down';
}
break;
}
}
// 設(shè)置游戲循環(huán)
var intervalId = setInterval(function() {
update();
draw();
}, 100);
// 綁定鍵盤事件
document.addEventListener('keydown', handleKeyDown, false);
</script>
</body>
</html>

以上代碼定義了一個(gè) HTML 頁面,其中包含了一個(gè)畫布,一個(gè) JavaScript 腳本,以及對應(yīng)的 CSS 樣式。JavaScript 腳本包含了繪制貪吃蛇、更新狀態(tài)、處理鍵盤事件等功能。代碼使用了許多 JavaScript 基本語法和 HTML5 中的 canvas 標(biāo)簽,非常適合入門級別的前端開發(fā)人員學(xué)習(xí)掌握。