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功能可用于检查特定键当前是否关闭,即按下。

请注意,按住密钥时不会连续调用keyPressedkeyReleased

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>

您可以使用以下代码:

$(document).keyup(function(){
console.log('key up');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
记得添加jquery!

相关内容

最新更新