科学教育

搜索
查看: 928|回复: 2
打印 上一主题 下一主题

杨隽豪贪吃蛇

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
跳转到指定楼层
楼主
发表于 2025-11-4 09:54:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我生成一个贪吃蛇游戏的网页代码
回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-11-4 09:54:21 | 只看该作者
当然可以帮你生成一个贪吃蛇游戏的网页代码!下面是一个简单的示例代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>贪吃蛇游戏</title>
  5.     <style>
  6.         canvas {
  7.             border: 1px solid black;
  8.             background-color: #f0f0f0;
  9.         }
  10.     </style>
  11. </head>
  12. <body>

  13. <canvas id="gameCanvas" width="400" height="400"></canvas>

  14. <script>
  15.     const canvas = document.getElementById("gameCanvas");
  16.     const ctx = canvas.getContext("2d");

  17.     const snakeSize = 10;
  18.     let snake = [
  19.         { x: 200, y: 200 },
  20.         { x: 190, y: 200 },
  21.         { x: 180, y: 200 },
  22.     ];

  23.     function drawSnakePart(snakePart) {
  24.         ctx.fillStyle = 'green';
  25.         ctx.fillRect(snakePart.x, snakePart.y, snakeSize, snakeSize);
  26.         ctx.strokeStyle = 'darkgreen';
  27.         ctx.strokeRect(snakePart.x, snakePart.y, snakeSize, snakeSize);
  28.     }

  29.     function drawSnake() {
  30.         snake.forEach(drawSnakePart);
  31.     }

  32.     function main() {
  33.         setTimeout(function onTick() {
  34.             clearCanvas();
  35.             drawSnake();
  36.             moveSnake();
  37.             main();
  38.         }, 100);
  39.     }

  40.     function clearCanvas() {
  41.         ctx.fillStyle = 'lightgrey';
  42.         ctx.fillRect(0, 0, canvas.width, canvas.height);
  43.     }

  44.     function moveSnake() {
  45.         const head = { x: snake[0].x, y: snake[0].y };
  46.         switch (direction) {
  47.             case 'UP':
  48.                 head.y -= snakeSize;
  49.                 break;
  50.             case 'DOWN':
  51.                 head.y += snakeSize;
  52.                 break;
  53.             case 'LEFT':
  54.                 head.x -= snakeSize;
  55.                 break;
  56.             case 'RIGHT':
  57.                 head.x += snakeSize;
  58.                 break;
  59.         }
  60.         snake.unshift(head);
  61.         snake.pop();
  62.     }

  63.     let direction = 'RIGHT';

  64.     document.addEventListener('keydown', changeDirection);

  65.     function changeDirection(event) {
  66.         const LEFT_KEY = 37;
  67.         const RIGHT_KEY = 39;
  68.         const UP_KEY = 38;
  69.         const DOWN_KEY = 40;

  70.         const keyPressed = event.keyCode;
  71.         const goingUp = direction === 'UP';
  72.         const goingDown = direction === 'DOWN';
  73.         const goingRight = direction === 'RIGHT';
  74.         const goingLeft = direction === 'LEFT';

  75.         if (keyPressed === LEFT_KEY && !goingRight) {
  76.             direction = 'LEFT';
  77.         }

  78.         if (keyPressed === UP_KEY && !goingDown) {
  79.             direction = 'UP';
  80.         }

  81.         if (keyPressed === RIGHT_KEY && !goingLeft) {
  82.             direction = 'RIGHT';
  83.         }

  84.         if (keyPressed === DOWN_KEY && !goingUp) {
  85.             direction = 'DOWN';
  86.         }
  87.     }

  88.     main();
  89. </script>

  90. </body>
  91. </html>
复制代码


你可以将这段代码复制粘贴到一个新建的 HTML 文件中,然后用浏览器打开该文件,就可以开始玩贪吃蛇游戏了!游戏目前只实现了蛇的移动和基本显示,你可以进一步完善游戏功能,比如添加食物、碰撞检测等。祝游戏愉快!如果你有问题,随时来问我哦!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
板凳
发表于 2025-11-4 09:57:10 | 只看该作者
改成一个CSS的形式
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表