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 相关文章推荐
js中关于new Object时传参的一些细节分析
Mar 13 Javascript
Extjs TimeField 显示正常时间格式的代码
Jun 28 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
May 13 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
Jun 17 Javascript
Javascript 5种方法实现过滤删除前后所有空格
Jun 22 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
Sep 16 Javascript
iview给radio按钮组件加点击事件的实例
Sep 30 Javascript
微信小程序中时间戳和日期的相互转换问题
Jul 09 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
ES10的13个新特性示例(小结)
Sep 23 Javascript
JS实现页面侧边栏效果探究
Jan 08 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扩展编写点滴 技巧收集
2010/03/09 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP基本语法总结
2014/09/06 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
[03:12]完美世界DOTA2联赛PWL DAY6集锦
2020/11/05 DOTA
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
Delphi CS笔试题
2014/01/04 面试题
初中考试作弊检讨书
2014/02/01 职场文书
新课培训心得体会
2014/09/03 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
会计岗位职责
2015/02/03 职场文书
Python基本知识点总结
2022/04/07 Python