/** * Detects and handles touch events from the user. * * @param MotionEvent event * @return boolean */ @Override public boolean onTouchEvent(MotionEvent event) { int eventAction = event.getAction(); switch (eventAction) { case MotionEvent.ACTION_DOWN: if (mGameState == STATE_RUNNING) { final int x = (int) event.getX(); final int y = (int) event.getY(); if (mCtrlUpArrow.getImpact(x, y)) { Log.d("Tile Game Example", "Pressed up arrow"); mLastStatusMessage = "Moving up"; mPlayerVerticalDirection = DIRECTION_UP; mPlayerMoving = true; } else if (mCtrlDownArrow.getImpact(x, y)) { Log.d("Tile Game Example", "Pressed down arrow"); mLastStatusMessage = "Moving down"; mPlayerVerticalDirection = DIRECTION_DOWN; mPlayerMoving = true; } else if (mCtrlLeftArrow.getImpact(x, y)) { Log.d("Tile Game Example", "Pressed left arrow"); mLastStatusMessage = "Moving left"; mPlayerHorizontalDirection = DIRECTION_LEFT; mPlayerMoving = true; } else if (mCtrlRightArrow.getImpact(x, y)) { Log.d("Tile Game Example", "Pressed right arrow"); mLastStatusMessage = "Moving right"; mPlayerHorizontalDirection = DIRECTION_RIGHT; mPlayerMoving = true; } } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mPlayerMoving = false; mPlayerVerticalDirection = 0; mPlayerHorizontalDirection = 0; break; } return true; }