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控制iframe滚动的代码
Apr 10 Javascript
Firefox window.close()的使用注意事项
Apr 11 Javascript
xml文档转换工具,附图表例子(hta)
Nov 17 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
js 判断一个元素是否在页面中存在
Dec 27 Javascript
jQuery中attr()方法用法实例
Jan 05 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
JavaScript中的this机制
Jan 30 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
Jul 07 Javascript
JavaScript实现的微信二维码图片生成器的示例
Oct 26 Javascript
React 组件渲染和更新的实现代码示例
Feb 21 Javascript
layui的表单提交以及验证和修改弹框的实例
Sep 09 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
Zend Guard一些常见问题解答
2008/09/11 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
python如何把字符串类型list转换成list
2020/02/18 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
材料物理专业个人求职信
2013/12/15 职场文书
学校宣传标语
2014/06/18 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
2014年保洁工作总结
2014/11/24 职场文书
2016中秋节问候语
2015/11/11 职场文书
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技