Лучший способ использования акселерометра в качестве контроллера (Android) - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь разработать приложение, которое можно использовать в качестве мыши для P C. Я хочу использовать акселерометр для этого. До сих пор мне удалось заставить его работать для осей X + и Y (влево и вверх) на экране, однако, если я пытаюсь переместить мышь вниз или вправо (ось -X и + Y), это не сработает. Я не уверен, в чем проблема, любое предложение будет высоко ценится.

  public void onSensorChanged(SensorEvent event) {

    deltaX = Math.abs(lastX - event.values[0]);
    deltaY = Math.abs(lastY - event.values[1]);


    deltaX = deltaX * 10;
    deltaY = deltaY * 10;


    if(deltaX > 2 && deltaY > 2){
      sendMSG((int)deltaX +"&"+(int)deltaY +"\n");
      Log.d("Velocity", "X + Y Values :: " + deltaX + deltaY);

    }

  }

Это мой метод, который берет координаты и отправляет их на мой сервер, я знаю, что моя проблема где-то лежит в рамках этого метода и как я обрабатываю координаты, но я просто не знаю, как go решить эту проблему.

1 Ответ

0 голосов
/ 04 апреля 2020

Поскольку вы вычисляете свои дельты с помощью функции abs, они всегда будут положительными, и ваше движение будет идти в одном направлении. Попробуйте что-то вроде этого -

deltaX = (lastX - event.values[0]) * 10;
deltaY = (lastY - event.values[1]) * 10;
...