javascript - P5.js:如何知道某个键是否不再被按下?
问题描述
我如何知道密钥是否被释放?这个问题已经为 C# 编码人员回答了,但我不使用 C#。
function keyPressed() {
if (keyIsDown(ENTER)){
player.up();
}
}
this.up = function() {
if (this.y == 350){
if (keyIsDown(ENTER)){
this.velocity -= this.gravity*15;
}
else{
this.velocity += this.gravity*20000;
}
}
}
此代码似乎不起作用。(不要介意我使用的整数。)
解决方案
当一个键被按下时,该keyPressed
事件被调用一次。当一个键被释放时,该keyReleased
事件被调用一次。该变量keyCode
告诉您按下或释放哪个键。该keyIsDown
功能可用于检查特定键当前是否按下,即按下。
请注意,keyPressed
并且keyReleased
在按住键时不会连续调用:
function draw() {}
function keyPressed(){
if (keyCode === ENTER){
console.log("Enter key pressed");
}
return false; // prevent any default behavior
}
function keyReleased(){
if (keyCode === ENTER){
console.log("Enter key released");
}
return false; // prevent any default behavior
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.min.js"></script>
如果要连续检查和处理键的状态,则可以在draw
函数中执行此操作,方法是检查keyIsDown
:
function draw() {
.....
if ( keyIsDown(ENTER) ) {
this.velocity -= this.gravity*15;
} else {
this.velocity += this.gravity*20000;
}
.....
}
如果按住 ENTER 键,这个简单的例子会改变画布的颜色(当然焦点必须在画布上):
function draw() {
if ( keyIsDown(ENTER) )
background(255,0,0)
else
background(0,0,255)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.min.js"></script>
推荐阅读
- express - 从其他机器访问 webpack DevServer 子 URL 时出现 ERR_SSL_PROTOCOL_ERROR
- javascript - 如何在 React Native 中引用卡片组件中的按钮?
- shopify - 在某些页面上禁用某些 Shopify 应用
- python - 绘制用户定义的函数
- python - 在 pygame 中对一组图像进行 blit
- python - 如何通过 Python 访问共享的 Google Drive 文件?
- r - 使用 httr / R 访问 RapidAPI 时出现问题 - 状态:401
- python - 重新连接后订阅者没有收到消息
- r - 尝试从包含不同类型文件(即 png、tif、rds)文件的目录在 R 上创建数据框
- find - Ctrl+F 底层实现