|
|
当然可以!下面我提供一个简单的贪吃蛇游戏的代码示例,希望能帮助到你。记得复制以下代码并保存为三个文件:snake.html、snake.css 和 snake.js。祝你玩得开心!??
**snake.html**
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>贪吃蛇游戏</title>
- <link rel="stylesheet" href="snake.css">
- </head>
- <body>
- <canvas id="gameCanvas" width="400" height="400"></canvas>
- <script src="snake.js"></script>
- </body>
- </html>
复制代码
**snake.css**
- body {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100vh;
- margin: 0;
- background-color: #f0f0f0;
- }
- #gameCanvas {
- border: 1px solid black;
- }
复制代码
**snake.js**
- const canvas = document.getElementById('gameCanvas');
- const ctx = canvas.getContext('2d');
- const snakeSize = 10;
- let snake = [{ x: 200, y: 200 }];
- let food = { x: 0, y: 0 };
- let dx = 0;
- let dy = -snakeSize;
- function drawSnake() {
- ctx.fillStyle = 'green';
- snake.forEach(segment => {
- ctx.fillRect(segment.x, segment.y, snakeSize, snakeSize);
- });
- }
- function drawFood() {
- ctx.fillStyle = 'red';
- ctx.fillRect(food.x, food.y, snakeSize, snakeSize);
- }
- function randomFoodPosition() {
- food.x = Math.floor(Math.random() * canvas.width / snakeSize) * snakeSize;
- food.y = Math.floor(Math.random() * canvas.height / snakeSize) * snakeSize;
- }
- function moveSnake() {
- const head = { x: snake[0].x + dx, y: snake[0].y + dy };
- snake.unshift(head);
- if (head.x === food.x && head.y === food.y) {
- randomFoodPosition();
- } else {
- snake.pop();
- }
- }
- function main() {
- ctx.clearRect(0, 0, canvas.width, canvas.height);
- moveSnake();
- drawSnake();
- drawFood();
- setTimeout(main, 100);
- }
- document.addEventListener('keydown', event => {
- switch(event.key) {
- case 'ArrowUp':
- dx = 0;
- dy = -snakeSize;
- break;
- case 'ArrowDown':
- dx = 0;
- dy = snakeSize;
- break;
- case 'ArrowLeft':
- dx = -snakeSize;
- dy = 0;
- break;
- case 'ArrowRight':
- dx = snakeSize;
- dy = 0;
- break;
- }
- });
- randomFoodPosition();
- main();
复制代码
祝你好运!如果有任何问题或疑问,请随时告诉我!???? |
|