0

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

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

但是,我希望能够通过按下两个箭头键的组合让用户沿对角线移动。现在,这似乎是不可能的,因为“keyCode”似乎一次只能保存一个值。

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

最好的,
萨米

4

3 回答 3

0

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

于 2012-08-15T06:14:56.943 回答
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"); }  

    } 
于 2014-03-25T19:06:55.567 回答
-1

我没有对此进行测试-但您是否尝试过:

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

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

于 2012-08-14T15:54:02.013 回答