当按键按下时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
------解决方案--------------------呵呵,,得注重细节