p5.js入门教程之键盘交互


Posted in Javascript onMarch 19, 2018

一、键盘交互相关关键词与函数

keyIsPressed: 关键词,按下按键时为true,反之为false

keyCode: 关键词,用于判断按下哪个按键

keyPressed():函数,按键按下时触发一次

keyReleased():函数,按键松开时触发一次

keyIsDown():函数,按下指定按键时返回true,反之为false

以下是一个较综合的案例,用wsad与zxcv控制小球移动:

var x=200; 
var y=200; 
var speed=2; 
 
function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
 ellipse(x,y,20,20); 
 if(keyIsPressed){ 
  //持续触发 
  //字母用小写 
  if(key=='a'){ 
   x-=speed; 
  } 
  if(key=='d'){ 
   x+=speed; 
  } 
 } 
 if(keyIsDown(87)){ 
  //持续触发 
    //使用keyCode 
  //87即w 
  y-=speed; 
 } 
 if(keyIsDown(83)){ 
  //持续触发 
  //使用keyCode 
  //83即s 
  y+=speed; 
 } 
} 
 
function keyPressed(){ 
 //按键按下时触发一次 
 //字母用大写 
  if(key=='Z'){ 
  x-=20; 
 } 
 if(key=='X'){ 
  x+=20; 
 } 
} 
 
function keyReleased(){ 
 //按键松开时触发一次 
 //字母用大写 
  if(key=='C'){ 
  y-=20; 
 } 
 if(key=='V'){ 
  y+=20; 
 } 
}

查看效果:http://alpha.editor.p5js.org/full/S1YQvEFIZ

二、key与keyCode

下面这个案例将在画面上输出你按下的按键的key与keyCode,在写程序时可以用这个办法快速查找keyCode:

function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
 textAlign(CENTER); 
 textSize(30); 
 if(keyIsPressed){ 
  text(key,200,180);  
  text(keyCode,200,220);  
 } 
}

查看效果:http://alpha.editor.p5js.org/full/rkZ2TVFLW

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
斜45度寻路实现函数
Aug 20 Javascript
formValidator3.3的ajaxValidator一些异常分析
Jul 12 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
微信QQ的二维码登录原理js代码解析
Jun 23 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
只需五句话搞定JavaScript作用域(经典)
Jul 26 Javascript
让div运动起来 js实现缓动效果
Jul 06 Javascript
不得不知的ES6小技巧
Jul 28 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
浅析js实现网页截图的两种方式
Nov 01 Javascript
vue 实现的树形菜的实例代码
Mar 19 #Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 #Javascript
jQuery替换节点元素的操作方法
Mar 18 #jQuery
使用Angular CLI生成 Angular 5项目教程详解
Mar 18 #Javascript
分析javascript原型及原型链
Mar 18 #Javascript
jquery 实现拖动文件上传加载进度条功能
Mar 18 #jQuery
jQuery中each方法的使用详解
Mar 18 #jQuery
You might like
PL-880隐藏功能
2021/03/01 无线电
PHP通过COM使用ADODB的简单例子
2006/12/31 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
jQuery 位置插件
2008/12/25 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
Python中的单继承与多继承实例分析
2018/05/10 Python
numpy中矩阵合并的实例
2018/06/15 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
南京某公司笔试题
2013/01/27 面试题
员工拓展培训方案
2014/02/15 职场文书
个人贷款担保书
2014/04/01 职场文书
大学活动总结范文
2014/04/29 职场文书
病人慰问信范文
2015/02/15 职场文书
2015年党总支工作总结
2015/05/25 职场文书