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异步编程的4种方法
Feb 19 Javascript
jQuery中ajax的load()方法用法实例
Dec 26 Javascript
js创建jsonArray传输至后台及后台全面解析
Apr 11 Javascript
JS中作用域和变量提升(hoisting)的深入理解
Oct 31 Javascript
AngularJS extend用法详解及实例代码
Nov 15 Javascript
用原生js做单页应用
Jan 17 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
微信小程序使用wxParse解析html的方法教程
Jul 06 Javascript
vue将单页面改造成多页面应用的方法
Nov 25 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
vue 验证两次输入的密码是否一致的方法示例
Sep 29 Javascript
输入框跟随文字内容适配宽实现示例
Aug 14 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
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
WAF的正确bypass
2017/01/05 PHP
JQUERY操作JSON实例代码
2010/02/09 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
python决策树之CART分类回归树详解
2017/12/20 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
配件采购员岗位职责
2013/12/03 职场文书
会计学自荐信
2014/06/03 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
先进基层党组织材料
2014/12/25 职场文书
中学生学习保证书
2015/02/26 职场文书
任命书怎么写
2015/03/02 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android