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中的常用事件总结
Dec 27 Javascript
javascript闭包的高级使用方法实例
Jul 04 Javascript
使用jQuery动态加载js脚本文件的方法
Apr 03 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
详解vue-cli 构建Vue项目遇到的坑
Aug 30 Javascript
在 Node.js 中使用原生 ES 模块方法解析
Sep 19 Javascript
Vue瀑布流插件的使用示例
Sep 19 Javascript
在Create React App中启用Sass和Less的方法示例
Jan 16 Javascript
使用p5.js实现动态GIF图片临摹重现
Oct 23 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
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
跟老齐学Python之做一个小游戏
2014/09/28 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
简单了解Python write writelines区别
2020/02/27 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
Python 内存管理机制全面分析
2021/01/16 Python
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
销售辞职报告范文
2014/01/12 职场文书
业绩考核岗位职责
2014/02/01 职场文书
对公司合理化的建议书
2014/03/12 职场文书
实习公司领导推荐函
2014/05/21 职场文书
升国旗演讲稿
2014/09/05 职场文书
事业单位聘任报告
2015/03/02 职场文书
年会主持人开场白台词
2015/05/29 职场文书