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 相关文章推荐
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
jquery each的几种常用的使用方法示例
Jan 21 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
Dec 30 Javascript
js HTML5 canvas绘制图片的方法
Sep 08 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
Oct 20 Javascript
Vue 实现前端权限控制的示例代码
Jul 09 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 Javascript
给原生html中添加水印遮罩层的实现示例
Apr 02 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类中private属性继承问题分析
2012/11/01 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
javascript new 需不需要继续使用
2009/07/02 Javascript
基于jquery的图片懒加载js
2010/06/30 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
面试常见的js算法题
2017/03/23 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
Python中装饰器的一个妙用
2015/02/08 Python
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
Python中属性和描述符的正确使用
2016/08/23 Python
python实现批量监控网站
2016/09/09 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Python多项式回归的实现方法
2019/03/11 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
30岁生日感言
2014/01/25 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
检讨书格式
2015/05/07 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫
搭建Yolov5服务器
2022/04/30 Servers
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS