feat(ui): ui_scale and ui_box, on-submit, zoom (and a length over a length in calc), on-hold
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
3d2a103dfb
commit
ec9a650e65
24 changed files with 323 additions and 23 deletions
28
packages/ludic.ui/hold.ludic
Normal file
28
packages/ludic.ui/hold.ludic
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# hold.ludic - on-hold: every frame a control is held down - by the pointer (wherever it goes until it
|
||||
# is let go), or by Enter or the pad's A on the focus - with event.dt, the seconds since the last
|
||||
# frame, and event.t, how long it has been held, on the ui clock
|
||||
var hd_key: string = ""
|
||||
var hd_t0: float = 0.0
|
||||
var hd_last: float = 0.0
|
||||
function hd_tick(root: UiNode) -> void {
|
||||
var key = fr_key_press
|
||||
if fr_press_key != "" and in_now.down { key = fr_press_key }
|
||||
if key == "" {
|
||||
hd_key = ""
|
||||
return
|
||||
}
|
||||
let now = an_now()
|
||||
if key != hd_key {
|
||||
hd_key = key
|
||||
hd_t0 = now
|
||||
hd_last = now
|
||||
}
|
||||
let n = fr_node(root, key)
|
||||
if n != null {
|
||||
let v = Value.object()
|
||||
Value.put(v, "dt", Value.float(now - hd_last))
|
||||
Value.put(v, "t", Value.float(now - hd_t0))
|
||||
ui_fire(n, "hold", v)
|
||||
}
|
||||
hd_last = now
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue