📜  p5.js |鼠标 |赢老鼠Y(1)

📅  最后修改于: 2023-12-03 15:18:12.598000             🧑  作者: Mango

P5.js | 鼠标 | 赢老鼠Y

P5.js是一个流行的JavaScript库,用于创造交互式、有趣的数字艺术作品,以及基于Web的创意编程。在本文中,我们将介绍如何使用P5.js创建一个简单的游戏,名为“赢老鼠Y”。

游戏规则

游戏规则很简单:玩家需要控制一个图标,用鼠标抓住屏幕上跑动的老鼠Y。每成功捕捉一只老鼠,游戏会为玩家计分。

编写代码

我们将使用P5.js的强大功能,例如绘制、鼠标事件、计时器和图像加载,来实现我们的游戏。

首先,我们需要创建一个HTML文件,并在其中包含P5.js的引用:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/addons/p5.dom.min.js"></script>
</head>
<body>
  <script src="sketch.js"></script>
</body>
</html>

然后,我们创建一个名为“sketch.js”的JavaScript文件,并开始编写游戏代码。

我们需要定义一些变量,例如分数、老鼠的速度、老鼠的位置等等:

let score = 0;
let mouseSpeed = 3;
let mousePos = {
  x: 0,
  y: 0,
};

接下来,我们需要使用P5.js的setup()函数来初始化游戏,例如创建画布、加载图像等等:

function setup() {
  createCanvas(400, 400);
  
  // 加载老鼠的图像
  mouseImg = loadImage('https://i.imgur.com/lOYR1Tb.png');
  
  // 隐藏鼠标样式
  noCursor();
}

然后,我们需要在draw()函数中更新并绘制游戏元素,例如玩家图标、老鼠图标等等:

function draw() {
  // 绘制背景
  background(200, 200, 250);
  
  // 绘制玩家图标
  let size = 50;
  ellipse(mouseX, mouseY, size);
  
  // 更新老鼠的位置
  let dx = mousePos.x - mouseX;
  let dy = mousePos.y - mouseY;
  let dist = Math.sqrt(dx*dx + dy*dy);
  if(dist < size/2 + 25) { // 如果玩家与老鼠相撞
    mousePos.x = random(width);
    mousePos.y = random(height);
    score ++;
  }
  let angle = atan2(mouseY-mousePos.y, mouseX-mousePos.x);
  mousePos.x += cos(angle) * mouseSpeed;
  mousePos.y += sin(angle) * mouseSpeed;
  
  // 绘制老鼠
  image(mouseImg, mousePos.x, mousePos.y, 50, 50);
  
  // 绘制分数
  textSize(32);
  textAlign(LEFT);
  fill(0);
  text(`Score: ${score}`, 10, 40);
}

最后,我们需要添加鼠标事件,以便在点击鼠标时玩家图标会快速移动到鼠标位置:

function mouseClicked() {
  let dx = mouseX - width/2;
  let dy = mouseY - height/2;
  let angle = atan2(dy, dx);
  let force = 100;
  mouseSpeed = 0;
  let timer = setInterval(() => {
    mouseSpeed += 0.1;
  }, 10);
  setTimeout(() => {
    clearInterval(timer);
    mouseSpeed = 3;
  }, 1000);
  mousePos.x += cos(angle) * force;
  mousePos.y += sin(angle) * force;
}
总结

通过P5.js,我们可以轻松创建交互式的数字艺术作品和有趣的游戏。本文中,我们使用了P5.js的绘图、鼠标事件、计时器和图像加载功能,创建了一个简单而有趣的游戏“赢老鼠Y”。希望这篇文章对您有所启发,如果您对P5.js感兴趣,请继续探索它的更多功能和可能性。