mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-03 20:36:31 +08:00
73 lines
1.9 KiB
Dart
73 lines
1.9 KiB
Dart
enum JoystickMoveDirectional {
|
|
MOVE_UP,
|
|
MOVE_UP_LEFT,
|
|
MOVE_UP_RIGHT,
|
|
MOVE_RIGHT,
|
|
MOVE_DOWN,
|
|
MOVE_DOWN_RIGHT,
|
|
MOVE_DOWN_LEFT,
|
|
MOVE_LEFT,
|
|
IDLE
|
|
}
|
|
|
|
enum ActionEvent { DOWN, UP, MOVE, CANCEL }
|
|
|
|
class JoystickDirectionalEvent {
|
|
final JoystickMoveDirectional directional;
|
|
final double intensity;
|
|
final double radAngle;
|
|
|
|
JoystickDirectionalEvent({
|
|
this.directional,
|
|
this.intensity = 0.0,
|
|
this.radAngle = 0.0,
|
|
});
|
|
|
|
static JoystickMoveDirectional calculateDirectionalByDegrees(double degrees) {
|
|
if (degrees > -22.5 && degrees <= 22.5) {
|
|
return JoystickMoveDirectional.MOVE_RIGHT;
|
|
} else if (degrees > 22.5 && degrees <= 67.5) {
|
|
return JoystickMoveDirectional.MOVE_DOWN_RIGHT;
|
|
} else if (degrees > 67.5 && degrees <= 112.5) {
|
|
return JoystickMoveDirectional.MOVE_DOWN;
|
|
} else if (degrees > 112.5 && degrees <= 157.5) {
|
|
return JoystickMoveDirectional.MOVE_DOWN_LEFT;
|
|
} else if ((degrees > 157.5 && degrees <= 180) ||
|
|
(degrees >= -180 && degrees <= -157.5)) {
|
|
return JoystickMoveDirectional.MOVE_LEFT;
|
|
} else if (degrees > -157.5 && degrees <= -112.5) {
|
|
return JoystickMoveDirectional.MOVE_UP_LEFT;
|
|
} else if (degrees > -112.5 && degrees <= -67.5) {
|
|
return JoystickMoveDirectional.MOVE_UP;
|
|
} else if (degrees > -67.5 && degrees <= -22.5) {
|
|
return JoystickMoveDirectional.MOVE_UP_RIGHT;
|
|
} else {
|
|
return JoystickMoveDirectional.IDLE;
|
|
}
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'JoystickDirectionalEvent{directional: $directional, intensity: $intensity, radAngle: $radAngle}';
|
|
}
|
|
}
|
|
|
|
class JoystickActionEvent {
|
|
final int id;
|
|
final double intensity;
|
|
final double radAngle;
|
|
final ActionEvent event;
|
|
|
|
JoystickActionEvent({
|
|
this.id,
|
|
this.intensity = 0.0,
|
|
this.radAngle = 0.0,
|
|
this.event,
|
|
});
|
|
|
|
@override
|
|
String toString() {
|
|
return 'JoystickActionEvent{id: $id, intensity: $intensity, radAngle: $radAngle, event: $event}';
|
|
}
|
|
}
|