onKeyboard method
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,
));
}
}
}