onKeyboard method

  1. @override
void onKeyboard(
  1. RawKeyEvent event
)
override

Implementation

@override
void onKeyboard(RawKeyEvent event) {
  if (!keyboardConfig.enable) return;

  if (_isDirectional(event)) {
    if (event is RawKeyDownEvent && _currentKeyboardKeys.length < 2) {
      if (!_currentKeyboardKeys.contains(event.logicalKey)) {
        _currentKeyboardKeys.add(event.logicalKey);
      }
    }

    if (event is RawKeyUpEvent && _currentKeyboardKeys.length > 0) {
      _currentKeyboardKeys.remove(event.logicalKey);
    }

    if (_currentKeyboardKeys.isEmpty) {
      joystickChangeDirectional(JoystickDirectionalEvent(
        directional: JoystickMoveDirectional.IDLE,
        intensity: 0.0,
        radAngle: 0.0,
      ));
    } else {
      if (_currentKeyboardKeys.length == 1) {
        _sendOneDirection(_currentKeyboardKeys.first);
      } else {
        _sendTwoDirection(
          _currentKeyboardKeys.first,
          _currentKeyboardKeys[1],
        );
      }
    }
  } else {
    if (event is RawKeyDownEvent) {
      joystickAction(JoystickActionEvent(
        id: event.logicalKey.keyId,
        event: ActionEvent.DOWN,
      ));
    } else if (event is RawKeyUpEvent) {
      joystickAction(JoystickActionEvent(
        id: event.logicalKey.keyId,
        event: ActionEvent.UP,
      ));
    }
  }
}