swing - Event key arrow in Java -
i simulating superman flying in java.
how can make event considers both right arrow , left arrow keys?
i set event of each arrow so:
public void keypressed(keyevent e) { int keycode=e.getkeycode(); switch(keycode) { case keyevent.vk_left: supermanleft.moveleft(); break; case keyevent.vk_right: supermanfly.moveright(); break; case keyevent.vk_up: superman.moveup(); break; case keyevent.vk_down: superman.movedown(); break; } }
when click 2 arrows simultaneously, superman goes back.
when both keys pressed, each 1 call keypressed
. can maintain set of keys pressed , see if there 2 keys pressed need:
private set<character> pressed = new hashset<character>(); public synchronized void keypressed(keyevent e) { pressed.add(e.getkeychar()); if (pressed.size() > 1) { //check if pressed contains want contain } else { //only 1 key pressed - act normal } } public synchronized void keyreleased(keyevent e) { //don't forget remove when released: pressed.remove(e.getkeychar()); }
hope helps.
Comments
Post a Comment