最后的问题是我需要调用超类函数,而不是返回 false 表示我没有处理输入。cocos2d-x GameControllerActivity 类没有设置来解决这个问题,所以我不得不修改 GameControllerActivity.java 并添加一个新的静态成员/函数来指示我希望我的应用程序何时具有控制器输入或者是否可以将其传递给 WebView 进行处理。
额外功能:
private static boolean smGrabJoypadInput = false;
public static void grabJoypad() {
smGrabJoypadInput = true;
}
public static void releaseJoypad() {
smGrabJoypadInput = false;
}
修改功能:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (!smGrabJoypadInput)
return super.dispatchKeyEvent(event);
...
@Override
public boolean dispatchGenericMotionEvent(MotionEvent event) {
if (!smGrabJoypadInput)
return super.dispatchGenericMotionEvent(event);
然后在需要时通过 JNI 调用这些函数。