p5.js入门教程之鼠标交互的示例


Posted in Javascript onMarch 16, 2018

本文介绍了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

二、鼠标交互常用函数

鼠标操作常用函数如下,还有:

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

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

Javascript 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
javascript模拟的Ping效果代码 (Web Ping)
Mar 13 Javascript
基于JQuery的动态删除Table表格的行和列的代码
May 12 Javascript
文本域光标操作的jQuery扩展分享
Mar 10 Javascript
推荐4个原生javascript常用的函数
Jan 12 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
微信小程序动态的加载数据实例代码
Apr 14 Javascript
浅谈箭头函数写法在ReactJs中的使用
Aug 22 Javascript
通过扫小程序码实现网站登陆功能
Aug 22 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
Mar 16 #Javascript
解决npm管理员身份install时出现权限的问题
Mar 16 #Javascript
vue-router相关基础知识及工作原理
Mar 16 #Javascript
axios post提交formdata的实例
Mar 16 #Javascript
在vue组件中使用axios的方法
Mar 16 #Javascript
axios发送post请求,提交图片类型表单数据方法
Mar 16 #Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 #Javascript
You might like
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
图片按比例缩放函数
2006/06/26 Javascript
javascript显示选择目录对话框的代码
2008/11/10 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
python实现文件路径和url相互转换的方法
2015/07/06 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
用Python进行websocket接口测试
2020/10/16 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
高中同学聚会邀请函
2014/01/11 职场文书
小学生寒假家长评语
2014/04/16 职场文书
赡养老人协议书
2014/04/21 职场文书
学校节能减排倡议书
2014/05/16 职场文书
党校毕业个人总结
2015/02/28 职场文书
公司职员入党自传书
2015/06/26 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
win10搭建配置ftp服务器的方法
2022/08/05 Servers