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 相关文章推荐
一个报数游戏js版(约瑟夫环问题)
Aug 05 Javascript
js getBoundingClientRect() 来获取页面元素的位置
Nov 25 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
基于jquery的时间段实现代码
Aug 02 Javascript
javascript中的原型链深入理解
Feb 24 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
jQuery简单实现中间浮窗效果
Sep 04 Javascript
JQuery和HTML5 Canvas实现弹幕效果
Jan 04 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
JavaScript动态加载重复绑定问题
Apr 01 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
JS+Canvas实现五子棋游戏
Aug 26 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设计模式之单例模式实例分析
2015/02/25 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
python if not in 多条件判断代码
2016/09/21 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
Python中的self用法详解
2019/08/06 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
Python正则表达式学习小例子
2020/03/03 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
中学生差生评语
2014/01/30 职场文书
国家助学金获奖感言
2014/01/31 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
解除劳动合同协议书
2014/09/17 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS