Beobachtet bei Axis Input: Setze ich zum Taste a (link) und ich schalte die shift taste dazu (a + Shift) und lasse dann die a-taste los, danach die shift taste, dann bewegt sich das objekt weiterhin nach links bis ich einmal kurz die a taste nochmal drücke.
Edit: klar, es wird ein unterschied gemacht zwischen "a" und "A" (große klein), sollte aber egal sein
Beobachtet bei Axis Input: Setze ich zum Taste a (link) und ich schalte die shift taste dazu (a + Shift) und lasse dann die a-taste los, danach die shift taste, dann bewegt sich das objekt weiterhin nach links bis ich einmal kurz die a taste nochmal drücke.
Edit: klar, es wird ein unterschied gemacht zwischen "a" und "A" (große klein), sollte aber egal sein
Ursache:Input hat sich Tasten unter KeyboardEvent.key gemerkt. Gedrückt kam a, losgelassen mit gehaltenem Shift kam A. release('A') hat nichts gefunden, also blieb a gedrückt, bis es das nächste Mal ohne Shift losgelassen wurde.
Fix:
Neue Regel keyName (src/core/keys.ts): ein einzelnes Zeichen wird kleingeschrieben. a und A sind dieselbe Taste, auch bei Caps Lock.
Input merkt sich pro physischer Taste (e.code), unter welchem Namen sie gedrückt wurde, und löst beim Loslassen genau diesen. Damit bleibt auch 1 nicht hängen, wenn es mit Shift als ! losgelassen wird.
On key down/up/held, Key is down und Axis input vergleichen mit derselben Regel. Ein Node mit gespeichertem A hört auf a.
Beim Aufnehmen einer Taste im Inspector wird Shift+A als a gespeichert.
Grenze: Wer Shift schon vor dem Drücken von 1 hält, sendet !, und ein Node auf 1 reagiert nicht. Stecken bleibt dabei nichts.
Tests: 3 neue Unit-Tests (Ablauf aus dem Issue, 1/!, Node mit A), beide Gegenproben greifen. ./check.sh: 2340 Tests, grün. Wiki Behaviors hat den Punkt „Keys ignore case“.
Behoben in ffb5bbe.
**Ursache:** `Input` hat sich Tasten unter `KeyboardEvent.key` gemerkt. Gedrückt kam `a`, losgelassen mit gehaltenem Shift kam `A`. `release('A')` hat nichts gefunden, also blieb `a` gedrückt, bis es das nächste Mal ohne Shift losgelassen wurde.
**Fix:**
- Neue Regel `keyName` (`src/core/keys.ts`): ein einzelnes Zeichen wird kleingeschrieben. `a` und `A` sind dieselbe Taste, auch bei Caps Lock.
- `Input` merkt sich pro physischer Taste (`e.code`), unter welchem Namen sie gedrückt wurde, und löst beim Loslassen genau diesen. Damit bleibt auch `1` nicht hängen, wenn es mit Shift als `!` losgelassen wird.
- `On key down/up/held`, `Key is down` und `Axis input` vergleichen mit derselben Regel. Ein Node mit gespeichertem `A` hört auf `a`.
- Beim Aufnehmen einer Taste im Inspector wird Shift+A als `a` gespeichert.
**Grenze:** Wer Shift schon vor dem Drücken von `1` hält, sendet `!`, und ein Node auf `1` reagiert nicht. Stecken bleibt dabei nichts.
**Tests:** 3 neue Unit-Tests (Ablauf aus dem Issue, `1`/`!`, Node mit `A`), beide Gegenproben greifen. `./check.sh`: 2340 Tests, grün. Wiki *Behaviors* hat den Punkt „Keys ignore case“.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Beobachtet bei Axis Input: Setze ich zum Taste a (link) und ich schalte die shift taste dazu (a + Shift) und lasse dann die a-taste los, danach die shift taste, dann bewegt sich das objekt weiterhin nach links bis ich einmal kurz die a taste nochmal drücke.
Edit: klar, es wird ein unterschied gemacht zwischen "a" und "A" (große klein), sollte aber egal sein
Behoben in
ffb5bbe.Ursache:
Inputhat sich Tasten unterKeyboardEvent.keygemerkt. Gedrückt kama, losgelassen mit gehaltenem Shift kamA.release('A')hat nichts gefunden, also bliebagedrückt, bis es das nächste Mal ohne Shift losgelassen wurde.Fix:
keyName(src/core/keys.ts): ein einzelnes Zeichen wird kleingeschrieben.aundAsind dieselbe Taste, auch bei Caps Lock.Inputmerkt sich pro physischer Taste (e.code), unter welchem Namen sie gedrückt wurde, und löst beim Loslassen genau diesen. Damit bleibt auch1nicht hängen, wenn es mit Shift als!losgelassen wird.On key down/up/held,Key is downundAxis inputvergleichen mit derselben Regel. Ein Node mit gespeichertemAhört aufa.agespeichert.Grenze: Wer Shift schon vor dem Drücken von
1hält, sendet!, und ein Node auf1reagiert nicht. Stecken bleibt dabei nichts.Tests: 3 neue Unit-Tests (Ablauf aus dem Issue,
1/!, Node mitA), beide Gegenproben greifen../check.sh: 2340 Tests, grün. Wiki Behaviors hat den Punkt „Keys ignore case“.