public void setJoysticks(JoystickBase left, JoystickBase right) {
    joysticks[0] = left;
    if (left != null) {
      joysticks[0].setAlign(Align.BOTTOM_LEFT);
      joysticks[0].setAlpha(joypadOpacity);
    }
    joysticks[1] = right;
    if (right != null) {
      joysticks[1].setAlign(Align.BOTTOM_RIGHT);
      joysticks[1].setAlpha(joypadOpacity);
    }

    for (int i = 0; i < joysticks.length; ++i) {
      JoystickBase joystick = joysticks[i];

      if (joystick != null) {
        if (!useSoftwareRendering) {
          joystick.setInverseYWhenDraw(true);
        } else {
          joystick.setInverseYWhenDraw(false);
        }

        int margin = context.getResources().getDimensionPixelSize(R.dimen.hud_joy_margin);

        joystick.setMargin(0, margin, bottomBarBg.getHeight() + margin, margin);
      }
    }

    renderer.removeSprite(JOY_ID_LEFT);
    renderer.removeSprite(JOY_ID_RIGHT);

    if (left != null) {
      renderer.addSprite(JOY_ID_LEFT, left);
    }

    if (right != null) {
      renderer.addSprite(JOY_ID_RIGHT, right);
    }
  }