科学教育
标题:
朱乔安
[打印本页]
作者:
朱乔安
时间:
2025-9-30 10:16
标题:
朱乔安
给我一个贪吃蛇代码,css,js,thm
作者:
kaia
时间:
2025-9-30 10:16
当然可以!下面是一个简单的贪吃蛇的网页编程代码,包括HTML、CSS和JavaScript:
1. HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>贪吃蛇游戏</title>
<link rel="stylesheet" href="style.css"> <!-- 引入CSS文件 -->
</head>
<body>
<div class="game-container">
<canvas id="gameCanvas"></canvas>
</div>
<script src="script.js"></script> <!-- 引入JavaScript文件 -->
</body>
</html>
复制代码
2. CSS代码(style.css):
body {
margin: 0;
padding: 0;
overflow: hidden;
}
.game-container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
#gameCanvas {
border: 1px solid black;
}
复制代码
3. JavaScript代码(script.js):
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
const gridSize = 20;
const tileCount = 20;
let snake = [{ x: 10, y: 10 }];
let apple = { x: 15, y: 15 };
let xVelocity = 0;
let yVelocity = 0;
function update() {
snake.unshift({ x: snake[0].x + xVelocity, y: snake[0].y + yVelocity });
if (snake[0].x === apple.x && snake[0].y === apple.y) {
apple.x = Math.floor(Math.random() * tileCount);
apple.y = Math.floor(Math.random() * tileCount);
} else {
snake.pop();
}
if (snake[0].x < 0 || snake[0].x >= tileCount || snake[0].y < 0 || snake[0].y >= tileCount || checkCollision()) {
snake = [{ x: 10, y: 10 }];
xVelocity = 0;
yVelocity = 0;
}
}
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = 'red';
ctx.fillRect(apple.x * gridSize, apple.y * gridSize, gridSize, gridSize);
ctx.fillStyle = 'green';
snake.forEach((segment) => {
ctx.fillRect(segment.x * gridSize, segment.y * gridSize, gridSize, gridSize);
});
}
function checkCollision() {
for (let i = 1; i < snake.length; i++) {
if (snake[i].x === snake[0].x && snake[i].y === snake[0].y) {
return true;
}
}
return false;
}
function moveSnake(event) {
switch(event.key) {
case 'ArrowUp':
xVelocity = 0;
yVelocity = -1;
break;
case 'ArrowDown':
xVelocity = 0;
yVelocity = 1;
break;
case 'ArrowLeft':
xVelocity = -1;
yVelocity = 0;
break;
case 'ArrowRight':
xVelocity = 1;
yVelocity = 0;
break;
}
}
setInterval(() => {
update();
draw();
}, 100);
window.addEventListener('keydown', moveSnake);
复制代码
这个代码实现了一个简单的贪吃蛇游戏。希望你可以在浏览器中尝试运行并玩一下这个小游戏!如果有任何问题,欢迎随时询问。
欢迎光临 科学教育 (http://www.sci-edu.net/)
Powered by Discuz! X3.2