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二维数组实现的省市联动菜单
May 08 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 Javascript
js+css实现tab菜单切换效果的方法
Jan 20 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
Dec 12 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 Javascript
json数据处理及数据绑定
Jan 25 Javascript
js实现倒计时关键代码
May 05 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
Vue 子组件与数据传递问题及注意事项
Jul 11 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 Javascript
vue之封装多个组件调用同一接口的案例
Aug 11 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下打开URL地址的几种方法小结
2010/05/16 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
经验几则 推荐
2006/09/05 Javascript
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
javascript每日必学之继承
2016/02/23 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
JointJS流程图的绘制方法
2018/12/03 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python实现注册、登录小程序功能
2018/09/21 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
实例详解Python模块decimal
2019/06/26 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
小学生家长意见
2015/06/03 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书