p5.js 鼠标交互基础:关键词、事件函数与拖拽实现

作者:半夏

时间:2026-10-22

浏览:480

本文详解 p5.js 中鼠标交互的核心机制,涵盖 mouseIsPressed 和 mouseButton 等关键变量,以及 mouseClicked、mousePressed 和 mouseReleased 等事件函数的用法。通过三个完整代码示例,演示如何判断按键类型、控制图形显隐,并实现基于距离检测的物体拖拽功能,帮助开发者快速掌握 Canvas 交互开发。

文章目录

本文介绍 p5.js 中鼠标交互的示例,供参考学习。

鼠标交互常用关键词

一、鼠标交互常用关键词

p5.js 提供了多种用于处理鼠标操作的关键词与函数,以下是常用部分:

mouseIsPressed:布尔关键词,当鼠标按键处于按下状态时返回 true,否则为 false。

mouseButton:关键词,用于判断当前按下的是鼠标的哪个按键。

具体案例如下:


function setup() {  
 createCanvas(400, 400); 
}  
function draw() {  
 background(220); 
 if (mouseIsPressed) { 
  textAlign(CENTER); 
  textSize(30); 
  if (mouseButton == LEFT) 
   text("LEFT",200,height/2); 
  if (mouseButton == RIGHT) 
   text("RIGHT",200,height/2); 
  if (mouseButton == CENTER) 
   text("CENTER",200,height/2); 
 } 
} 

当用户分别按下鼠标左键、中键或右键时,屏幕中央会显示对应的“LEFT”、“CENTER”或“RIGHT”文本。

查看效果:

http://alpha.editor.p5js.org/full/BkEcwrdUb

鼠标交互常用函数

二、鼠标交互常用函数

除了关键词,p5.js 还提供以下常用鼠标事件函数:

mouseClicked():鼠标点击(按下并松开)时触发一次。 mousePressed():鼠标按下瞬间触发一次。 mouseReleased():鼠标松开瞬间触发一次。

利用这些函数可以控制图形在屏幕上的显示时机,具体案例如下:


var showEllipse=false; 
var showRect=false; 
function setup() {  
 createCanvas(400, 400); 
}  
function draw() {  
 background(220); 
 if (mouseIsPressed){ 
  ellipse(50, height/2, 50, 50); 
 } 
 if(showEllipse){ 
    ellipse(200, height/2, 50, 50); 
 } 
 if(showRect){ 
  rectMode(CENTER); 
  rect(350,height/2,50,50);  
 } 
} 
function mouseClicked(){ 
 showEllipse=!showEllipse; 
} 
 
function mousePressed(){ 
 showRect=true; 
} 
function mouseReleased(){ 
 showRect=false; 
} 

查看效果:http://alpha.editor.p5js.org/full/BkHEY8OUZ

鼠标拖拽物体实现

三、鼠标拖拽物体

结合上述关键词与函数,可以实现更复杂的功能,例如通过鼠标拖拽移动物体。

实现代码如下:


var x=200; 
var y=200 
var r=50; 
function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
 if(mouseIsPressed&&dist(mouseX,mouseY,x,y)<r){ 
  x=mouseX; 
  y=mouseY; 
 } 
 ellipse(x,y,r,r); 
} 

查看效果:http://alpha.editor.p5js.org/full/SJ6gbPdLb

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章