今天研究贪吃蛇安卓代码的时候,发现onKeyDown对按键无反应。
经过调试发现需要加上setFocusable(true);
public void update(){
this.setFocusable(true);
long newTime=System.currentTimeMillis();
if((newTime-oldTime)>delays){
Coordinate nowPos=getPos();
System.out.println(direction);
Coordinate nowOrder=moveOrder();
setPos(nowPos.x+nowOrder.x*myTileSize,nowPos.y+nowOrder.y*myTileSize);
oldTime=newTime;
}
myRefreshHandler.sleep(delays);
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent msg){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_DOWN:
direction=SOUTH;
return(true);
case KeyEvent.KEYCODE_DPAD_UP:
direction=NORTH;