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

当按键按下时Canvas的KeyPressed()方法没有调用该怎么解决?
public   synchronized   void   KeyPressed(int   keyCode){
                System.out.println( "sdfsdfsd ");
              if(gameState   !=GAME_PLAYING   ||   (gameState==GAME_PLAYING   &&   isPaused)){
                  return;
                       
              }
                if   (keyCode   ==   0)return;
                int   gameCode   =   getGameAction(keyCode);
                System.out.println(gameCode);
                switch   (gameCode){
                        case   GameCanvas.LEFT:
                                doLeft();
                                break;
                        case   RIGHT:
                                doRight();
                                break;
                        case   FIRE:
                        case   UP:
                                doFire();
                                break;
              }
                repaint();
        }
       
    public   void   keyRepeated(int   keyCode){
              keyPressed(keyCode);
               
        }


------解决方案--------------------
你怎么判断出来没有调用呢?
------解决方案--------------------
是keyPressed(int keyCode)
不是KeyPressed(int keyCode)
楼主要仔细啊-_-!!
------解决方案--------------------
大小写问题。

用IDE开发的话,重写方法一般都会给出某种标识,比如eclipse就是一个向上的小三角。没有出现标识那就说明你的方法签名出了问题。
顺便,java代码规范就是要求方法首字母小写。。。有大写打头的方法第一反应就是有问题。
------解决方案--------------------
KeyPressed 应该是方法keyPressed
------解决方案--------------------
呵呵,,得注重细节