swing 判断是否同时按了多个键

swing 键盘监听事件 ,KeyListener有三种方法

keyReleased // 键按下再松开这一事件做的事情

KeyPressed// 键一直保持按下状态做的事

keyTyped//

在KeyEvent 中有判断shift等键状态的方法,却没有判断其它键状态的方法,我在做游戏的时候,如果人物按了->,向前跑的

箭头保持按下,再按发射子弹的键,

此时,跑的键处于按下状态,发射子弹的键处于按下状态,当我按下发射时,人物停止跑动,开始发射子弹,松开发射时,

人物停止发射,虽跑键一直处于按下,但不再跑动。

。。思考后,我的方法是利用 keyReleased,KeyPressed 两个方法来记录跑键的状态,

大致代码:

Boolean run=false;//初始状态

 KeyPressed{

if(e.keygetcode==跑键){ 

run=true;

}//

}

keyReleased{

if(e.keygetcode==跑键){ 

run=false;

}//只要我一松开,run的状态被改变为false,人物不再跑动,如果

跑动过程中按下发射子弹键,因为人物run为true,所以不受影响。

}

if(run==true){

跑;

}

个人心得记录,如有不对,请留言指正。

猜你喜欢

转载自blog.csdn.net/qq_38966984/article/details/80026664