Проблема с управлением двумя джойстиками в Android

я занимаюсь разработкой игры с двумя джойстиками в Android. Стоит сказать, что я новичок в этом движке, поэтому могу не понимать некоторые его аспекты. Ну вот, джойстики управляются по отдельности идеально, но стоит мне зажать их одновременно, продолжает работать только первый. Я так понимаю, проблема может быть с мультитачем, но, как мне кажется, она должна была решиться добавлением методов с POINTER, в итоге не помогло. Вот код:

@Override
    public boolean onTouchEvent(MotionEvent event) {
        int actionMask = event.getActionMasked();
        int IdJoystick_1 = event.getPointerId(0);
        int IdJoystick_2 = event.getPointerId(0);

        int pointerIndex_1 = event.findPointerIndex(IdJoystick_1);
        int pointerIndex_2 = event.findPointerIndex(IdJoystick_2);

        switch(actionMask) {
            case MotionEvent.ACTION_DOWN:
                if (joystick.isPressed((double) event.getX(pointerIndex_1), (double) event.getY(pointerIndex_1))) {
                    Log.d("MyTag", "Первое касание джойстика 1");
                    joystick.setIsPressed(true);
                }

                if (joystick_2.isPressed_2((double) event.getX(pointerIndex_2), (double) event.getY(pointerIndex_2))) {
                    Log.d("MyTag", "Первое касание джойстика 2");
                    joystick_2.setIsPressed_2(true);
                }
            return true;

            case MotionEvent.ACTION_POINTER_DOWN:
                if (joystick.isPressed((double) event.getX(pointerIndex_1), (double) event.getY(pointerIndex_1))) {
                    Log.d("MyTag", "Второе касание джойстика 1");
                    joystick.setIsPressed(true);
                }

                if (joystick_2.isPressed_2((double) event.getX(pointerIndex_2), (double) event.getY(pointerIndex_2))) {
                    Log.d("MyTag", "Второе касание джойстика 2");
                    joystick_2.setIsPressed_2(true);
                }
            return true;

            case MotionEvent.ACTION_MOVE:
                if (joystick.getIsPressed()) {
                    Log.d("MyTag", "Джойстик 1 перемещается");
                    joystick.setActuator((double) event.getX(pointerIndex_1), (double) event.getY(pointerIndex_1));
                }

                if (joystick_2.getIsPressed_2()) {
                    Log.d("MyTag", "Джойстик 2 перемещается");
                    joystick_2.setActuator_2((double) event.getX(pointerIndex_2), (double) event.getY(pointerIndex_2));
                }
            return true;

            case MotionEvent.ACTION_UP:
                joystick.setIsPressed(false);
                joystick.resetActuator();
                joystick_2.setIsPressed_2(false);
                joystick_2.resetActuator_2();
                Log.d("MyTag", "Джойстик 1, 2 отпущены");
            return true;

            case MotionEvent.ACTION_POINTER_UP:
                joystick.setIsPressed(false);
                joystick.resetActuator();
                joystick_2.setIsPressed_2(false);
                joystick_2.resetActuator_2();
                Log.d("MyTag", "Джойстик 1, 2 снова отпущены");
            return true;
        }

        return super.onTouchEvent(event);
    }

Ответы (0 шт):