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 相关文章推荐
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
vue实现微信分享链接添加动态参数的方法
Apr 29 Javascript
微信小程序获取地理位置及经纬度授权代码实例
Sep 18 Javascript
electron踩坑之remote of undefined的解决
Oct 06 Javascript
解决element-ui的下拉框有值却无法选中的情况
Nov 07 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 file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
JS数组实现分类统计实例代码
2018/09/30 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
python中cPickle用法例子分享
2014/01/03 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python中调用其他程序的方式详解
2019/08/06 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
如何使用python写截屏小工具
2020/09/29 Python
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
联谊活动策划书
2014/01/26 职场文书
领导党性分析材料
2014/02/15 职场文书
个性车贴标语
2014/06/24 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
留学推荐信中文范文
2015/03/26 职场文书
鉴史问廉观后感
2015/06/10 职场文书
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL