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 相关文章推荐
Javascript 读书笔记索引贴
Jan 11 Javascript
事件模型在各浏览器中存在差异
Oct 20 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
Jun 27 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
Vue.js移动端左滑删除组件的实现代码
Sep 08 Javascript
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
基于bootstrap写的一点localStorage本地储存
Nov 21 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 Javascript
JavaScript如何判断对象有某属性
Jul 03 Javascript
vue 解决addRoutes多次添加路由重复的操作
Aug 04 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中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
js字符编码函数区别分析
2008/06/05 Javascript
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
js中复选框的取值及赋值示例详解
2020/10/18 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
python BeautifulSoup使用方法详解
2013/11/21 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
Python利用命名空间解析XML文档
2020/08/10 Python
pandas参数设置的实用小技巧
2020/08/23 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
英国健身专家:WIT Fitness
2021/02/09 全球购物
养殖人员的创业计划书范文
2013/12/26 职场文书
上级检查欢迎词
2014/01/18 职场文书
《穷人》教学反思
2014/04/08 职场文书
应届大专生自荐书
2014/06/16 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
老兵退伍感言
2015/08/03 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技