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){
跑;
}
个人心得记录,如有不对,请留言指正。