pig.moveLeft()小猪就会向左移动,pig.moveRight()小猪会向右移动。pig.stop()小猪就会停止不动如果键盘上的“左”被按下时就执行pig.moveLeft()
如果键盘上的“右”被按下时就执行pig.moveRight()
如果有任何键被放开,就执行pig.stop()
(*按下就是keyPressed,放开就是keyReleased这应该都知道吧)现在游戏算是能玩了,不过有点小问题想请教:
玩家在游戏过程中,由向左移动,变为向右移动的时候,有两种按法,
1.先放开“左”再按下“右”
2.先按下“右”再放开“左”第一种按法,手感上没有任何问题,但是第二种按法的话就会卡一下,可能会卡半秒的时间(的确有人是这么按键)该怎么解决这个问题呢?

解决方案 »

  1.   

    这个现象是否是由于键松开时会调用一次stop造成的停顿看楼主的水平应该不错
    那这样说楼主应该能理解
    你用两个boolean变量来做标志位,标记你的左右键是否处于按下中
    就是keyPressed的时候把相应的标志位置上,keyReleased的时候把标志位清掉
    而你在keyReleased的时候不要直接stop
    先判一下标志位,如果标志位显示另一个键是按下的,那就不调用stop
      

  2.   

    在KeyListener中只监听最后一个键盘操作,例如按下“左”又按“右”,那么在按下右之后,只处理右的操作。