ProcessingJS可以同时存在多个键输入吗?

时间:2012-04-13 21:17:46

标签: javascript html5 canvas html5-canvas processing

我正在处理一个处理JS的RTS风格的webapp,这意味着有一个小小的地图代表一个更大的地图,用户只能看到任何特定时刻的一小部分。我刚刚添加了使用箭头键导航地图的功能,即:

    void keyPressed(){
    if(key == CODED){
        switch(keyCode){
            case(UP): //go up
            case(DOWN): //go down , etc

但是,我希望能够让用户通过按两个箭头键的组合来对角移动。现在,似乎这是不可能做到的,看看“keyCode”一般只能看到一个值。

有人知道这个问题的解决方法吗?

最佳,
萨米

3 个答案:

答案 0 :(得分:0)

正如@Xenethyl在评论中的链接中指出的那样,解决这个问题的一种方法是记录按下按键的时间,然后观察按键何时释放。可以安全地假设在这两个事件之间的一段时间内按下了一个键。

答案 1 :(得分:0)

我只会在 javascript

中执行以下操作
    document.onkeydown = keydown; 

    function keydown(evt) { 

    if (!evt) evt = event; 

    if (evt.ctrlKey && evt.altKey && evt.keyCode==115) {

        alert("CTRL+ALT+F4"); } 

    else if (evt.shiftKey && evt.keyCode == 9) { 

        alert("Shift+TAB"); }  

    } 

答案 2 :(得分:-1)

我没有测试过这个 - 但你试过了吗?

 void keyPressed(){
      if(key == 'a' && key == 'b'){
           println("this just happened");
      }
 }

如果这样可行,您可以找到箭头键的ascii值,而不是使用键CODED。