pass both logical key & physical key to input handler on keyboard keypress
This commit is contained in:
@@ -64,16 +64,16 @@ class DelegateInputHandler implements InputHandler {
|
||||
_processing = true;
|
||||
|
||||
final delegate = delegates.first;
|
||||
final keyUp = <PhysicalKey, KeyEvent>{};
|
||||
final keyDown = <PhysicalKey, KeyEvent>{};
|
||||
final keyUp = <LogicalKey, KeyEvent>{};
|
||||
final keyDown = <LogicalKey, KeyEvent>{};
|
||||
|
||||
for (final event in _events) {
|
||||
if (event is KeyEvent) {
|
||||
switch (event.type) {
|
||||
case KeyEventType.up:
|
||||
keyUp[event.key] = event;
|
||||
keyUp[event.logicalKey] = event;
|
||||
case KeyEventType.down:
|
||||
keyDown[event.key] = event;
|
||||
keyDown[event.logicalKey] = event;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,32 +69,33 @@ class FreeFlightInputHandlerDelegateV2 implements InputHandlerDelegate {
|
||||
break;
|
||||
case ScaleEndEvent(numPointers: final numPointers):
|
||||
break;
|
||||
case KeyEvent(type: final type, key: var key):
|
||||
switch (key) {
|
||||
case PhysicalKey.A:
|
||||
case KeyEvent(type: final type, logicalKey: var logicalKey, physicalKey: var physicalKey ):
|
||||
switch (physicalKey) {
|
||||
case PhysicalKey.a:
|
||||
translation += Vector3(
|
||||
-sensitivity.keySensitivity,
|
||||
0,
|
||||
0,
|
||||
);
|
||||
break;
|
||||
case PhysicalKey.S:
|
||||
case PhysicalKey.s:
|
||||
translation += Vector3(0, 0, sensitivity.keySensitivity);
|
||||
break;
|
||||
case PhysicalKey.D:
|
||||
case PhysicalKey.d:
|
||||
translation += Vector3(
|
||||
sensitivity.keySensitivity,
|
||||
0,
|
||||
0,
|
||||
);
|
||||
break;
|
||||
case PhysicalKey.W:
|
||||
case PhysicalKey.w:
|
||||
translation += Vector3(
|
||||
0,
|
||||
0,
|
||||
-sensitivity.keySensitivity,
|
||||
);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -80,13 +80,16 @@ class ScrollEvent extends InputEvent {
|
||||
|
||||
class KeyEvent extends InputEvent {
|
||||
final KeyEventType type;
|
||||
final PhysicalKey key;
|
||||
final LogicalKey logicalKey;
|
||||
final PhysicalKey physicalKey;
|
||||
|
||||
KeyEvent(this.type, this.key);
|
||||
KeyEvent(this.type, this.logicalKey, this.physicalKey);
|
||||
}
|
||||
|
||||
enum KeyEventType { down, up }
|
||||
|
||||
enum PhysicalKey { W, A, S, D }
|
||||
enum LogicalKey { w, a, s, d, g, r, shift, esc, del }
|
||||
|
||||
enum PhysicalKey { w, a, s, d, g, r, shift, esc, del }
|
||||
|
||||
enum InputAction { TRANSLATE, ROTATE, PICK, ZOOM, NONE }
|
||||
|
||||
Reference in New Issue
Block a user