日期:2014-05-20  浏览次数:20721 次

讨论!Canvas以及GameCanvas下的按键问题??
我现在是这样的
定义拉一个整型int   i
当按下上或下或左或右时自增1

在Canvas下用keyPressed来检测按键
在GameCanvas下用拉input()一个方法,在方法中int   keyStates   =   getKeyStates();  
  if   ((keyStates   &   LEFT_PRESSED)   !=   0)
          {
            i=i+1;
          }
来检查按键,将input()方法加入到线程RUN()中不断检查按键

现在问题来拉
在Canvas下按下右,i就增拉1,这是对的
但在GameCanvas下就出问题拉,按下右,i就增拉很多,也就是检查按拉N次

这就是我郁闷拉?为什么在GameCanvas会出这种问题勒?
有能解释下的吗

------解决方案--------------------
Canvas里keyPressed方法里,只有按下去才检测到一次事件
但是GameCanvas里的getKeyState是返回的按键状态,就是说按着不动,会多次触发你的事件