返回

利用 JavaScript、HTML 和 CSS,让贪食蛇游戏变成现实

前端

从代码中挖掘精妙:踏上贪食蛇开发之旅

在游戏开发的世界里,贪食蛇是一款流传已久的经典,如同马里奥之于任天堂,吃豆人之于街机。它考验反应、考验策略,甚至需要点运气。

现在,你也可以成为游戏开发者中的一员,通过 JavaScript、HTML 和 CSS 来创造属于你的贪食蛇游戏。我们将从头开始,用最基础的代码打好地基,一步步构建出这款充满挑战的游戏。

踏出第一步:用 JavaScript 为贪食蛇赋予生命

JavaScript 是整个游戏的核心,它负责操控贪食蛇的行为、管理游戏逻辑,让贪食蛇动起来。

  • 绘制画布:
const canvas = document.getElementById("snake-board");
const ctx = canvas.getContext("2d");

这里,用 JavaScript 创建了画布(canvas)元素和画布上下文(context)对象,相当于搭建好了游戏舞台。

  • 定义贪食蛇:
class Snake {
  constructor(x, y) {
    this.x = x;
    this.y = y;
    this.dx = 1;
    this.dy = 0;
    this.cells = [];
  }
}

贪食蛇类用来贪食蛇的位置、移动方向和身体各个部分。

  • 移动贪食蛇:
function moveSnake() {
  // 更新蛇头位置
  snake.x += snake.dx;
  snake.y += snake.dy;
}

通过这个函数,贪食蛇会根据设定的方向移动。

  • 绘制贪食蛇:
function drawSnake() {
  ctx.fillStyle = "green";
  for (let i = 0; i < snake.cells.length; i++) {
    const cell = snake.cells[i];
    ctx.fillRect(cell.x, cell.y, 10, 10);
  }
}

用画布上下文对象(context)来填充颜色,使贪食蛇显现出来。

HTML 和 CSS:搭建游戏舞台

  • HTML 搭建舞台:
<!DOCTYPE html>
<html>
<head>
  
</head>
<body>
  <canvas id="snake-board" width="500px" height="500px"></canvas>
</body>
</html>

这便是游戏舞台的 HTML 骨架,其中包括画布元素。

  • CSS 美化舞台:
canvas {
  border: 1px solid black;
}

用 CSS 给画布加上边框,让游戏舞台更加醒目。

让贪食蛇动起来

  • 游戏循环:
function gameLoop() {
  moveSnake();
  drawSnake();
  requestAnimationFrame(gameLoop);
}

游戏循环用来不断更新游戏状态,包括移动贪食蛇和重新绘制画布,从而让贪食蛇动起来。

添加苹果:贪食蛇的美味目标

  • 苹果类:
class Apple {
  constructor() {
    this.x = Math.floor(Math.random() * 49) * 10;
    this.y = Math.floor(Math.random() * 49) * 10;
  }
}

这个类用来苹果的位置。

  • 绘制苹果:
function drawApple() {
  ctx.fillStyle = "red";
  ctx.fillRect(apple.x, apple.y, 10, 10);
}

让苹果在画布上显现出来。

  • 碰撞检测:
function checkCollision() {
  if (snake.x === apple.x && snake.y === apple.y) {
    // 贪食蛇吃到苹果了!
  }
}

碰撞检测函数用来判断贪食蛇是否吃到了苹果。

走向终点:完成贪食蛇游戏

  • 事件监听:
document.addEventListener("keydown", function(e) {
  if (e.keyCode === 37) {
    // 按下左箭头键,贪食蛇向左转
  }
});

添加事件监听器来捕捉键盘输入,从而控制贪食蛇的移动方向。

  • 结束游戏:
function endGame() {
  // 游戏结束的条件
  // ...
}

定义游戏结束的条件,比如贪食蛇碰到墙壁或自己。

结语:让代码焕发活力

现在,你已经学会如何用 JavaScript、HTML 和 CSS 来开发贪食蛇游戏。希望这段旅程启发了你的创造力,让你对游戏开发的世界产生浓厚的兴趣。