我是Android开发的新手,所以我想我有一个简单的问题,但我似乎无法弄清楚出了什么问题。
我基本上从样本中复制了LunarLander游戏示例,但我试图只复制我需要的部分来制作一个小乒乓球游戏。但由于某种原因,onKeyUp和onKeyDown没有被调用。部分问题是我仍然不确定Android的调试方法是什么。
public class PongView extends SurfaceView implements SurfaceHolder.Callback{
...
/**
* Standard override for key up. Used to move the paddles
* @return
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent msg) {
return thread.doKeyUp(keyCode, msg);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent msg) {
return thread.doKeyDown(keyCode, msg);
}
...
}
编辑解决方案:
我忘了把这一行放在我的View的构造函数中。
setFocusable(true);
答案 0 :(得分:4)
只有当您的视图具有可关注性且重点突出时,您才会获得关键事件。在游戏的情况下,您可以将视图设置为在触摸模式下可聚焦,以便自动获取关键事件。
答案 1 :(得分:0)
您使用的是带硬件键盘的设备,还是使用软(屏幕)键盘?我认为这些事件不会用软键盘触发。