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 相关文章推荐
Jquery Validation插件防止重复提交表单的解决方法
Mar 05 Javascript
读jQuery之十 事件模块概述
Jun 27 Javascript
JS图像无缝滚动脚本非常好用
Feb 10 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
基于js实现投票的实例代码
Aug 04 Javascript
浅析BootStrap模态框的使用(经典)
Apr 29 Javascript
JS定时器实现数值从0到10来回变化
Dec 09 Javascript
jQuery Masonry瀑布流插件使用方法详解
Jan 18 Javascript
解决vue attr取不到属性值的问题
Sep 18 Javascript
微信小程序实现滑动操作代码
Apr 23 Javascript
Nuxt.js 静态资源和打包的操作
Nov 06 Javascript
JavaScript使用canvas绘制坐标和线
Apr 28 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实现框架(一)
2006/10/09 PHP
PHP+DBM的同学录程序(4)
2006/10/09 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
python封装对象实现时间效果
2020/04/23 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
计算机专业自我鉴定
2013/10/15 职场文书
二手书店创业计划书
2014/01/16 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
领导接待方案
2014/03/13 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
小学六一主持词开场白
2015/05/28 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
pandas中pd.groupby()的用法详解
2022/06/16 Python