int32_t cxAndroid::HandleInput(AInputEvent* event) { int type = AInputEvent_getType(event); if(type == AINPUT_EVENT_TYPE_MOTION){ return HandleMotionInput(event); } if(type == AINPUT_EVENT_TYPE_KEY){ return HandleKeyInput(event); } return 0; return 0; }
void MGLInput::KeyInputCallBack(GLFWwindow* window, GLuint key, GLuint scancode, GLuint action, GLuint mods) { static auto game = static_cast<MGLInput*>(glfwGetWindowUserPointer(window)); game->HandleKeyInput(key, scancode, MGL::BitShiftLeftEnableZero(action), mods); // GLFW actions -> MGLInputType ButtonActions }
void AllegroApp::HandleEvent(ALLEGRO_EVENT& ev) { if(ev.type == ALLEGRO_EVENT_TIMER) { HandleKeyInput(); redraw = true; } else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) { doexit = true; } else if(ev.type == ALLEGRO_EVENT_KEY_DOWN) { switch(ev.keyboard.keycode) { case ALLEGRO_KEY_UP: key[KEY_UP] = true; break; case ALLEGRO_KEY_DOWN: key[KEY_DOWN] = true; break; case ALLEGRO_KEY_LEFT: key[KEY_LEFT] = true; break; case ALLEGRO_KEY_RIGHT: key[KEY_RIGHT] = true; break; case ALLEGRO_KEY_Q: key[KEY_SLEFT] = true; break; case ALLEGRO_KEY_E: key[KEY_SRIGHT] = true; break; } } else if(ev.type == ALLEGRO_EVENT_KEY_UP) { switch(ev.keyboard.keycode) { case ALLEGRO_KEY_UP: key[KEY_UP] = false; break; case ALLEGRO_KEY_DOWN: key[KEY_DOWN] = false; break; case ALLEGRO_KEY_LEFT: key[KEY_LEFT] = false; break; case ALLEGRO_KEY_RIGHT: key[KEY_RIGHT] = false; break; case ALLEGRO_KEY_ESCAPE: doexit = true; break; case ALLEGRO_KEY_Q: key[KEY_SLEFT] = false; break; case ALLEGRO_KEY_E: key[KEY_SRIGHT] = false; break; } } }