fix(input): Key.Up/Down/Left/Right are the held set's 128-131
The arrow Key constants folded to the codes of w/s/a/d, which is what the per-frame key reports for an arrow, but cocoa.ll has always stored an arrow in the held-key set under 128-131. So Input.key_down(Key.Up) read the W bit and Input.move_i's arrow half never moved anything. Input.key keeps its WASD alias, so games comparing it with 'w' (snake, chronorift) still take the arrows. New example input_arrows.ludic, checked by ludic-dev test. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
572e09b2b1
commit
6117f73602
4 changed files with 54 additions and 10 deletions
9
changes/arrow-keys.md
Normal file
9
changes/arrow-keys.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
bump: patch
|
||||
type: fix
|
||||
**Held arrow keys register** — `Key.Up`, `Key.Down`, `Key.Left` and `Key.Right` are 128-131.
|
||||
|
||||
They folded to the codes of w, s, a and d, which is what the single per-frame key
|
||||
(`Input.key`) reports for an arrow. The held-key set has always stored an arrow under
|
||||
128-131, so `Input.key_down(Key.Up)` tested the W bit and `Input.move_i`'s arrow half never
|
||||
moved anything. `Input.key` keeps its WASD alias: a game comparing it with `'w'` still
|
||||
takes the arrows.
|
||||
Loading…
Add table
Add a link
Reference in a new issue