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 相关文章推荐
Mootools 1.2教程 事件处理
Sep 15 Javascript
ExtJS下grid的一些属性说明
Dec 13 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
基于Jquery实现焦点图淡出淡入效果
Nov 30 Javascript
基于javascript数组实现图片轮播
May 02 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
ES6中Array.includes()函数的用法
Sep 20 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
Vue数据绑定简析小结
May 07 Javascript
vue源码nextTick使用及原理解析
Aug 13 Javascript
基于vue 动态菜单 刷新空白问题的解决
Aug 06 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
php检测useragent版本示例
2014/03/24 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
浅析Python多线程下的变量问题
2015/04/28 Python
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Django实现表单验证
2018/09/08 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python如何生成xml文件
2020/06/04 Python
python打开文件的方式有哪些
2020/06/29 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
幼儿园实习自我鉴定
2013/12/15 职场文书
机电一体化应届生求职信范文
2014/01/24 职场文书
《都江堰》教学反思
2014/02/07 职场文书
市场营销专业求职信
2014/06/17 职场文书
亮剑精神观后感
2015/06/05 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
详解Python中__new__方法的作用
2022/03/31 Python