Javascript ProcessingJS是否可以同时有多个键输入?
我正在processingJS中开发一个RTS风格的Web应用程序,这意味着有一个小地图代表一个更大的地图,用户在任何给定时刻只能看到其中的一小部分。我刚刚添加了使用箭头键导航地图的功能,即:Javascript ProcessingJS是否可以同时有多个键输入?,javascript,html,canvas,html5-canvas,processing,Javascript,Html,Canvas,Html5 Canvas,Processing,我正在processingJS中开发一个RTS风格的Web应用程序,这意味着有一个小地图代表一个更大的地图,用户在任何给定时刻只能看到其中的一小部分。我刚刚添加了使用箭头键导航地图的功能,即: void keyPressed(){ if(key == CODED){ switch(keyCode){ case(UP): //go up case(DOWN): //go down , etc 但是,我希望能够通过按下
void keyPressed(){
if(key == CODED){
switch(keyCode){
case(UP): //go up
case(DOWN): //go down , etc
但是,我希望能够通过按下两个箭头键的组合,让用户沿对角线移动。现在,这似乎是不可能做到的,因为“keyCode”似乎一次只能保存一个值
有人知道这个问题的解决方法吗
最好的,
萨米我还没有测试过这个-但是你试过了吗:
void keyPressed(){
if(key == 'a' && key == 'b'){
println("this just happened");
}
}
如果这样做有效,您可以找到箭头键的ascii值,而不是使用键编码。正如@Xenethyl在评论中的链接中指出的那样,解决这个问题的一种方法是跟踪按键的时间,然后观察按键的释放时间。可以安全地假设在这两个事件之间的一段时间内按下了一个键。我将在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"); }
}
这里概述了一种有效的方法:一个变量如何同时保持两个值?