zx-kit 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/dist/audio.d.ts +42 -0
- package/dist/audio.d.ts.map +1 -1
- package/dist/audio.js +77 -0
- package/dist/audio.js.map +1 -1
- package/dist/debug.d.ts.map +1 -1
- package/dist/debug.js +1 -2
- package/dist/debug.js.map +1 -1
- package/dist/input.d.ts +18 -3
- package/dist/input.d.ts.map +1 -1
- package/dist/input.js +30 -3
- package/dist/input.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ zx-kit captures that aesthetic in TypeScript. You get the Spectrum's palette, RO
|
|
|
32
32
|
- **Monochrome playfield (opt-in)** — the classic anti-clash trick: render the action area in a single ink + paper at its own size, keep the colour in the HUD around it. Everything inside becomes a clean two-colour silhouette — no clash, ever
|
|
33
33
|
- **Free-roaming sprites** — position, velocity, gravity, `flipX` caching, transparent or opaque background
|
|
34
34
|
- **Three-tier collision** — AABB overlap tests, generic rect-vs-tile wall resolution (any sprite size), and pixel-precise mask overlap with O(pixels) sorted-merge intersection — no allocations per frame
|
|
35
|
-
- **Keyboard and gamepad input** — configurable key-repeat, transparent gamepad polling, single-consume action flags, instant state reset on phase transitions
|
|
35
|
+
- **Keyboard and gamepad input** — configurable key-repeat, transparent gamepad polling, single-consume action flags, instant state reset on phase transitions, built-in `+`/`-` volume with an auto-hide HUD bar (one render-loop line)
|
|
36
36
|
- **ZX-style UI widgets** — progress bars with managed lifetime, boxes, frames, panel titles
|
|
37
37
|
- **Typed save / load** — persistent saves via `localStorage` with schema versioning, migrations, slot enumeration, in-memory throttling, and discriminated Result types for every failure mode
|
|
38
38
|
- **Runtime locale switching** — type-safe string-pack selection via `pickLocale()`, so a game can switch language while running — unimaginable on the original Spectrum, natural in the browser
|
|
@@ -184,12 +184,12 @@ Zero runtime dependencies, `sideEffects: false`, fully tree-shakeable.
|
|
|
184
184
|
| `monoscreen` | Opt-in monochrome playfield + colour HUD (clash-proof) | [rendering](docs/rendering.md#monoscreents--monochrome-playfield) |
|
|
185
185
|
| `tilescroll` | Pixel-smooth sub-tile tilemap scrolling | [rendering](docs/rendering.md#tilescrollts--pixel-smooth-scrolling) |
|
|
186
186
|
| `lighting` | Dithered cave darkness, one blit per frame | [rendering](docs/rendering.md#lightingts--dithered-cave-darkness) |
|
|
187
|
-
| `audio` | 1-bit beeper: square-wave notes, patterns, volume | [audio](docs/audio.md#audiots--beeper-audio) |
|
|
187
|
+
| `audio` | 1-bit beeper: square-wave notes, patterns, volume + built-in auto-hide volume bar | [audio](docs/audio.md#audiots--beeper-audio) |
|
|
188
188
|
| `ay` | AY-3-8912: 3-channel tone, LFSR noise, 16 envelopes | [audio](docs/audio.md#ayts--ay-3-8912-melodik-audio) |
|
|
189
189
|
| `music` | AY music by note name (`A5`, `C#4`) + looping | [audio](docs/audio.md#musicts--note-name-ay-music) |
|
|
190
190
|
| `collision` | AABB / rect-vs-tile / pixel-precise mask overlap | [collision](docs/collision.md) |
|
|
191
191
|
| `save` | Typed save/load: versioning, migration, slots, throttle | [save](docs/save.md) |
|
|
192
|
-
| `input` | Keyboard + gamepad movement, key-repeat, action flags | [api](docs/api.md#inputts--keyboard--gamepad-input) |
|
|
192
|
+
| `input` | Keyboard + gamepad movement, key-repeat, action flags, built-in `+`/`-` volume keys | [api](docs/api.md#inputts--keyboard--gamepad-input) |
|
|
193
193
|
| `sprite` | Free-roaming sprites: position, velocity, gravity, flip | [api](docs/api.md#spritets--free-roaming-sprites) |
|
|
194
194
|
| `animation` | Frame timer, position tween, blinker | [api](docs/api.md#animationts--frame-timer--tween) |
|
|
195
195
|
| `camera` | Viewport follow with lerp + deadzone, world clamp | [api](docs/api.md#camerats--scrolling-camera) |
|
|
@@ -220,12 +220,13 @@ zx-kit/
|
|
|
220
220
|
│ ├── audio.ts # initAudio, resumeAudio, beep, playPattern,
|
|
221
221
|
│ │ # getAudioContext, getMasterGain,
|
|
222
222
|
│ │ # getMasterVolume, setMasterVolume,
|
|
223
|
-
│ │ # increaseVolume, decreaseVolume, Note
|
|
223
|
+
│ │ # increaseVolume, decreaseVolume, Note,
|
|
224
|
+
│ │ # setVolumeBarStyle, drawVolumeBar
|
|
224
225
|
│ ├── ay.ts # createAY, playAY, AYChannel, AYNote, AYChip,
|
|
225
226
|
│ │ # AY_VOL, AY_CLOCK, AY_ENVELOPE_SHAPES
|
|
226
227
|
│ ├── input.ts # initInput, tickMovement, consumeFlag,
|
|
227
228
|
│ │ # consumePause, consumeDebug, consumeAnyKey,
|
|
228
|
-
│ │ # isHeld, resetInput, Direction
|
|
229
|
+
│ │ # isHeld, resetInput, setVolumeKeys, Direction
|
|
229
230
|
│ ├── ui.ts # drawBox, drawFrame, drawPanelTitle,
|
|
230
231
|
│ │ # instrumentation widgets, progress bars
|
|
231
232
|
│ ├── tilemap.ts # createTileMap, Tile, Viewport, TileMap
|
package/dist/audio.d.ts
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*
|
|
18
18
|
* @see {@link createAY} and {@link playAY} for multi-channel music in `ay.ts`
|
|
19
19
|
*/
|
|
20
|
+
import type { SpectrumColor } from './palette.js';
|
|
20
21
|
/**
|
|
21
22
|
* Creates the shared `AudioContext` and master `GainNode`. Idempotent — safe to call
|
|
22
23
|
* multiple times (subsequent calls are no-ops).
|
|
@@ -74,6 +75,8 @@ export declare function getMasterVolume(): number;
|
|
|
74
75
|
export declare function setMasterVolume(volume: number): void;
|
|
75
76
|
/**
|
|
76
77
|
* Increases master volume by 0.1, up to a maximum of 1.0.
|
|
78
|
+
* Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
|
|
79
|
+
* this (by key **or** programmatically) makes the bar appear for ~1.5 s.
|
|
77
80
|
*
|
|
78
81
|
* @example
|
|
79
82
|
* increaseVolume() // 0.3 → 0.4
|
|
@@ -81,11 +84,50 @@ export declare function setMasterVolume(volume: number): void;
|
|
|
81
84
|
export declare function increaseVolume(): void;
|
|
82
85
|
/**
|
|
83
86
|
* Decreases master volume by 0.1, down to a minimum of 0.0.
|
|
87
|
+
* Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
|
|
88
|
+
* this (by key **or** programmatically) makes the bar appear for ~1.5 s.
|
|
84
89
|
*
|
|
85
90
|
* @example
|
|
86
91
|
* decreaseVolume() // 0.3 → 0.2
|
|
87
92
|
*/
|
|
88
93
|
export declare function decreaseVolume(): void;
|
|
94
|
+
/** Optional overrides for {@link setVolumeBarStyle}. */
|
|
95
|
+
export interface VolumeBarStyleOptions {
|
|
96
|
+
/** Bar ink colour. Default `C.B_GREEN`. */
|
|
97
|
+
color?: SpectrumColor;
|
|
98
|
+
/** Bar width in cells (`width = segments * CELL`). Default `10`. */
|
|
99
|
+
segments?: number;
|
|
100
|
+
/** Left edge in game pixels. Omit to centre horizontally. */
|
|
101
|
+
x?: number;
|
|
102
|
+
/** Top edge in game pixels. Default `96 - CELL` (≈ mid-screen). */
|
|
103
|
+
y?: number;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Configures the auto-hide volume bar's appearance (config-once style). Stores
|
|
107
|
+
* style in module state only — does **not** render. Optional: the defaults
|
|
108
|
+
* (centred 10-segment green bar, mid-screen) apply if this is never called.
|
|
109
|
+
*
|
|
110
|
+
* @param opts - Style overrides; unspecified fields keep their current value.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* setVolumeBarStyle({ color: C.B_CYAN }) // recolour only
|
|
114
|
+
* setVolumeBarStyle({ segments: 16, y: 176 }) // wider, near the bottom
|
|
115
|
+
*/
|
|
116
|
+
export declare function setVolumeBarStyle(opts?: VolumeBarStyleOptions): void;
|
|
117
|
+
/**
|
|
118
|
+
* Draws the volume bar — the only render-loop call. Reads the stored style (see
|
|
119
|
+
* {@link setVolumeBarStyle}); takes no style args. Auto-show: draws nothing once
|
|
120
|
+
* more than ~1.5 s has passed since the last {@link increaseVolume} /
|
|
121
|
+
* {@link decreaseVolume}; otherwise renders the current master volume and hides
|
|
122
|
+
* itself afterwards. Call every frame.
|
|
123
|
+
*
|
|
124
|
+
* @param canvasCtx - The game canvas 2D context (scaled by `SCALE`).
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* // in the render loop:
|
|
128
|
+
* drawVolumeBar(ctx) // shows ~1.5 s after a change, then hides itself
|
|
129
|
+
*/
|
|
130
|
+
export declare function drawVolumeBar(canvasCtx: CanvasRenderingContext2D): void;
|
|
89
131
|
/** A single note in a melody pattern. Use `freq: 0` for a rest (silence). */
|
|
90
132
|
export interface Note {
|
|
91
133
|
freq: number;
|
package/dist/audio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAkBjD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,SAAM,GAAG,IAAI,CAM5C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,QAAQ,GAAG,IAAI,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAwBD,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,mEAAmE;IACnE,CAAC,CAAC,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,qBAA0B,GAAG,IAAI,CAKxE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAuBvE;AAED,6EAA6E;AAC7E,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,SAAI,GAAG,IAAI,CAS/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAc9E"}
|
package/dist/audio.js
CHANGED
|
@@ -17,9 +17,15 @@
|
|
|
17
17
|
*
|
|
18
18
|
* @see {@link createAY} and {@link playAY} for multi-channel music in `ay.ts`
|
|
19
19
|
*/
|
|
20
|
+
import { C, CELL, SCALE } from './palette.js';
|
|
21
|
+
import { drawProgressBar } from './ui.js';
|
|
20
22
|
let ctx = null;
|
|
21
23
|
let masterGain = null;
|
|
22
24
|
const VOLUME_STEP = 0.1;
|
|
25
|
+
/** Wall-clock time (ms, `performance.now()`) of the last volume change — drives the auto-show HUD bar. */
|
|
26
|
+
let _volumeChangedAt = 0;
|
|
27
|
+
/** How long {@link drawVolumeBar} keeps the bar visible after a change (ms). */
|
|
28
|
+
const VOLUME_BAR_MS = 1500;
|
|
23
29
|
function clampVolume(v) {
|
|
24
30
|
return Math.max(0, Math.min(1, v));
|
|
25
31
|
}
|
|
@@ -100,21 +106,92 @@ export function setMasterVolume(volume) {
|
|
|
100
106
|
}
|
|
101
107
|
/**
|
|
102
108
|
* Increases master volume by 0.1, up to a maximum of 1.0.
|
|
109
|
+
* Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
|
|
110
|
+
* this (by key **or** programmatically) makes the bar appear for ~1.5 s.
|
|
103
111
|
*
|
|
104
112
|
* @example
|
|
105
113
|
* increaseVolume() // 0.3 → 0.4
|
|
106
114
|
*/
|
|
107
115
|
export function increaseVolume() {
|
|
108
116
|
setMasterVolume(getMasterVolume() + VOLUME_STEP);
|
|
117
|
+
_volumeChangedAt = performance.now();
|
|
109
118
|
}
|
|
110
119
|
/**
|
|
111
120
|
* Decreases master volume by 0.1, down to a minimum of 0.0.
|
|
121
|
+
* Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
|
|
122
|
+
* this (by key **or** programmatically) makes the bar appear for ~1.5 s.
|
|
112
123
|
*
|
|
113
124
|
* @example
|
|
114
125
|
* decreaseVolume() // 0.3 → 0.2
|
|
115
126
|
*/
|
|
116
127
|
export function decreaseVolume() {
|
|
117
128
|
setMasterVolume(getMasterVolume() - VOLUME_STEP);
|
|
129
|
+
_volumeChangedAt = performance.now();
|
|
130
|
+
}
|
|
131
|
+
const _volumeBarStyle = {
|
|
132
|
+
color: C.B_GREEN, // → drawProgressBar ink
|
|
133
|
+
segments: 10, // → width = 10 * CELL = 80 px
|
|
134
|
+
x: undefined, // centred horizontally
|
|
135
|
+
y: 96 - CELL, // roughly mid-screen
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Configures the auto-hide volume bar's appearance (config-once style). Stores
|
|
139
|
+
* style in module state only — does **not** render. Optional: the defaults
|
|
140
|
+
* (centred 10-segment green bar, mid-screen) apply if this is never called.
|
|
141
|
+
*
|
|
142
|
+
* @param opts - Style overrides; unspecified fields keep their current value.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* setVolumeBarStyle({ color: C.B_CYAN }) // recolour only
|
|
146
|
+
* setVolumeBarStyle({ segments: 16, y: 176 }) // wider, near the bottom
|
|
147
|
+
*/
|
|
148
|
+
export function setVolumeBarStyle(opts = {}) {
|
|
149
|
+
if (opts.color !== undefined)
|
|
150
|
+
_volumeBarStyle.color = opts.color;
|
|
151
|
+
if (opts.segments !== undefined)
|
|
152
|
+
_volumeBarStyle.segments = opts.segments;
|
|
153
|
+
if (opts.x !== undefined)
|
|
154
|
+
_volumeBarStyle.x = opts.x;
|
|
155
|
+
if (opts.y !== undefined)
|
|
156
|
+
_volumeBarStyle.y = opts.y;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Draws the volume bar — the only render-loop call. Reads the stored style (see
|
|
160
|
+
* {@link setVolumeBarStyle}); takes no style args. Auto-show: draws nothing once
|
|
161
|
+
* more than ~1.5 s has passed since the last {@link increaseVolume} /
|
|
162
|
+
* {@link decreaseVolume}; otherwise renders the current master volume and hides
|
|
163
|
+
* itself afterwards. Call every frame.
|
|
164
|
+
*
|
|
165
|
+
* @param canvasCtx - The game canvas 2D context (scaled by `SCALE`).
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* // in the render loop:
|
|
169
|
+
* drawVolumeBar(ctx) // shows ~1.5 s after a change, then hides itself
|
|
170
|
+
*/
|
|
171
|
+
export function drawVolumeBar(canvasCtx) {
|
|
172
|
+
if (performance.now() - _volumeChangedAt > VOLUME_BAR_MS)
|
|
173
|
+
return;
|
|
174
|
+
const { color, segments, x, y } = _volumeBarStyle;
|
|
175
|
+
const width = segments * CELL;
|
|
176
|
+
// drawProgressBar works in game-pixel space; convert the device-pixel backing
|
|
177
|
+
// store to it via the context's current horizontal scale (set by setupCanvas),
|
|
178
|
+
// so centring is correct at any scale. Falls back to SCALE if getTransform is
|
|
179
|
+
// unavailable (e.g. a bare test mock).
|
|
180
|
+
const scaleX = canvasCtx.getTransform?.().a || SCALE;
|
|
181
|
+
const screenW = canvasCtx.canvas.width / scaleX;
|
|
182
|
+
drawProgressBar(canvasCtx, {
|
|
183
|
+
id: 'zxkit:volume',
|
|
184
|
+
x: x ?? Math.round((screenW - width) / 2),
|
|
185
|
+
y,
|
|
186
|
+
width,
|
|
187
|
+
value: getMasterVolume(),
|
|
188
|
+
min: 0,
|
|
189
|
+
max: 1,
|
|
190
|
+
ink: color,
|
|
191
|
+
paper: C.BLACK,
|
|
192
|
+
border: { style: 'solid' },
|
|
193
|
+
visibilityLength: VOLUME_BAR_MS,
|
|
194
|
+
});
|
|
118
195
|
}
|
|
119
196
|
/**
|
|
120
197
|
* Schedules a sequence of notes on the shared `AudioContext`.
|
package/dist/audio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,IAAI,GAAG,GAAwB,IAAI,CAAA;AACnC,IAAI,UAAU,GAAoB,IAAI,CAAA;AAEtC,MAAM,WAAW,GAAG,GAAG,CAAA;AAEvB,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,MAAM,GAAG,GAAG;IACpC,IAAI,GAAG;QAAE,OAAM;IACf,GAAG,GAAG,IAAI,YAAY,EAAE,CAAA;IACxB,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAC7B,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW;QAAE,KAAK,GAAG,CAAC,MAAM,EAAE,CAAA;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,IAAI,CAAC,UAAU;QAAE,OAAM;IACvB,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"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"}
|
package/dist/debug.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,iGAAiG;IACjG,OAAO,EAAE,MAAM,CAAA;IACf,iHAAiH;IACjH,MAAM,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAA;IAChB,8GAA8G;IAC9G,OAAO,EAAE,MAAM,CAAA;IACf,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,YAAY,CAUd;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CASjF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,YAAY,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAC3C,SAAS,CAUX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,SAAS,EACf,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,GAAG,GAAE,aAA0B,EAC/B,KAAK,GAAE,aAAuB,GAC7B,IAAI,
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,iGAAiG;IACjG,OAAO,EAAE,MAAM,CAAA;IACf,iHAAiH;IACjH,MAAM,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAA;IAChB,8GAA8G;IAC9G,OAAO,EAAE,MAAM,CAAA;IACf,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,YAAY,CAUd;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CASjF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,YAAY,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAC3C,SAAS,CAUX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,SAAS,EACf,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,GAAG,GAAE,aAA0B,EAC/B,KAAK,GAAE,aAAuB,GAC7B,IAAI,CAKN"}
|
package/dist/debug.js
CHANGED
|
@@ -85,8 +85,7 @@ export function drawDebugOverlay(ctx, info, x = 1, y = 1, ink = C.B_YELLOW, pape
|
|
|
85
85
|
lines.push(`CPU ${Math.round(info.cpuLoad * 100)}%`);
|
|
86
86
|
for (const key of Object.keys(info.custom))
|
|
87
87
|
lines.push(`${key} ${info.custom[key]}`);
|
|
88
|
-
for (let i = 0; i < lines.length; i++)
|
|
88
|
+
for (let i = 0; i < lines.length; i++)
|
|
89
89
|
drawText(ctx, lines[i], x, y + i * CELL, ink, paper);
|
|
90
|
-
}
|
|
91
90
|
}
|
|
92
91
|
//# sourceMappingURL=debug.js.map
|
package/dist/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
|
package/dist/input.d.ts
CHANGED
|
@@ -5,17 +5,32 @@ export type Direction = 'up' | 'down' | 'left' | 'right';
|
|
|
5
5
|
* Idempotent — safe to call multiple times. Timing params are always updated;
|
|
6
6
|
* listeners are only attached on the first call.
|
|
7
7
|
* Arrow keys drive movement; `F`/`f` = flag; `P`/`p` = pause; `Ctrl+Shift+B` = debug toggle.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* `+`/`=` raise and `-`/`_` lower the master volume (see {@link setVolumeKeys} to
|
|
9
|
+
* remap or disable). Gamepad support is automatic — `tickMovement` polls the
|
|
10
|
+
* Gamepad API each frame. D-pad and left analog stick map to directions;
|
|
11
|
+
* A = flag, Start = pause, Y = debug.
|
|
10
12
|
*
|
|
11
13
|
* @param repeatDelay - Milliseconds before auto-repeat starts after initial press (default `150`)
|
|
12
14
|
* @param repeatInterval - Milliseconds between repeat ticks while key is held (default `80`)
|
|
13
15
|
*
|
|
14
16
|
* @example
|
|
15
|
-
* initInput() // defaults: 150ms delay, 80ms repeat
|
|
17
|
+
* initInput() // defaults: 150ms delay, 80ms repeat, +/- volume
|
|
16
18
|
* initInput(200, 60) // custom timing; safe to call again to reconfigure
|
|
17
19
|
*/
|
|
18
20
|
export declare function initInput(repeatDelay?: number, repeatInterval?: number): void;
|
|
21
|
+
/**
|
|
22
|
+
* Overrides the keys that adjust master volume. Optional — `+`/`=` (up) and
|
|
23
|
+
* `-`/`_` (down) stay active if this is never called. Pass empty arrays to
|
|
24
|
+
* disable volume keys entirely.
|
|
25
|
+
*
|
|
26
|
+
* @param up - Key(s) (`KeyboardEvent.key`) that raise volume. A string or array.
|
|
27
|
+
* @param down - Key(s) that lower volume. A string or array.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* setVolumeKeys('9', '8') // numpad-ish remap; +/- no longer touch volume
|
|
31
|
+
* setVolumeKeys([], []) // disable built-in volume keys
|
|
32
|
+
*/
|
|
33
|
+
export declare function setVolumeKeys(up: string | string[], down: string | string[]): void;
|
|
19
34
|
/**
|
|
20
35
|
* Advances the key-repeat timer and returns the movement direction for this frame.
|
|
21
36
|
* Call once per frame with the frame delta in milliseconds.
|
package/dist/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAmHxD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,WAAW,SAAM,EAAE,cAAc,SAAK,GAAG,IAAI,CAuCtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAGlF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,SAAI,GAAG,SAAS,GAAG,IAAI,CA4B7E;AAED,sGAAsG;AACtG,wBAAgB,WAAW,IAAI,OAAO,CAA+D;AAErG,gGAAgG;AAChG,wBAAgB,YAAY,IAAI,OAAO,CAA8D;AAErG,kFAAkF;AAClF,wBAAgB,YAAY,IAAI,OAAO,CAA8D;AAErG;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAA6D;AAErG;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAyB;AAErE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAgBjC"}
|
package/dist/input.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { increaseVolume, decreaseVolume } from './audio.js';
|
|
1
2
|
const DIR_KEYS = {
|
|
2
3
|
ArrowUp: 'up', ArrowDown: 'down', ArrowLeft: 'left', ArrowRight: 'right',
|
|
3
4
|
};
|
|
@@ -16,6 +17,10 @@ let pendingImmediate = null;
|
|
|
16
17
|
let _repeatDelay = 150;
|
|
17
18
|
let _repeatInterval = 80;
|
|
18
19
|
let inputInitialized = false;
|
|
20
|
+
// Volume keys — on by default; zx-kit owning +/- is the owner-approved trade-off.
|
|
21
|
+
// Remap with setVolumeKeys(); disable with empty sets. Drives audio.ts directly.
|
|
22
|
+
let _volumeUpKeys = ['+', '='];
|
|
23
|
+
let _volumeDownKeys = ['-', '_'];
|
|
19
24
|
// ── Gamepad state ──────────────────────────────────────────────────────────────
|
|
20
25
|
const STICK_DEAD = 0.35;
|
|
21
26
|
let padPrevDir = null;
|
|
@@ -109,14 +114,16 @@ function pollGamepad() {
|
|
|
109
114
|
* Idempotent — safe to call multiple times. Timing params are always updated;
|
|
110
115
|
* listeners are only attached on the first call.
|
|
111
116
|
* Arrow keys drive movement; `F`/`f` = flag; `P`/`p` = pause; `Ctrl+Shift+B` = debug toggle.
|
|
112
|
-
*
|
|
113
|
-
*
|
|
117
|
+
* `+`/`=` raise and `-`/`_` lower the master volume (see {@link setVolumeKeys} to
|
|
118
|
+
* remap or disable). Gamepad support is automatic — `tickMovement` polls the
|
|
119
|
+
* Gamepad API each frame. D-pad and left analog stick map to directions;
|
|
120
|
+
* A = flag, Start = pause, Y = debug.
|
|
114
121
|
*
|
|
115
122
|
* @param repeatDelay - Milliseconds before auto-repeat starts after initial press (default `150`)
|
|
116
123
|
* @param repeatInterval - Milliseconds between repeat ticks while key is held (default `80`)
|
|
117
124
|
*
|
|
118
125
|
* @example
|
|
119
|
-
* initInput() // defaults: 150ms delay, 80ms repeat
|
|
126
|
+
* initInput() // defaults: 150ms delay, 80ms repeat, +/- volume
|
|
120
127
|
* initInput(200, 60) // custom timing; safe to call again to reconfigure
|
|
121
128
|
*/
|
|
122
129
|
export function initInput(repeatDelay = 150, repeatInterval = 80) {
|
|
@@ -141,6 +148,10 @@ export function initInput(repeatDelay = 150, repeatInterval = 80) {
|
|
|
141
148
|
pendingFlag = true;
|
|
142
149
|
if (e.key === 'p' || e.key === 'P')
|
|
143
150
|
pendingPause = true;
|
|
151
|
+
if (_volumeUpKeys.includes(e.key))
|
|
152
|
+
increaseVolume();
|
|
153
|
+
if (_volumeDownKeys.includes(e.key))
|
|
154
|
+
decreaseVolume();
|
|
144
155
|
if (e.ctrlKey && e.shiftKey && (e.key === 'b' || e.key === 'B')) {
|
|
145
156
|
pendingDebug = true;
|
|
146
157
|
e.preventDefault();
|
|
@@ -155,6 +166,22 @@ export function initInput(repeatDelay = 150, repeatInterval = 80) {
|
|
|
155
166
|
}
|
|
156
167
|
});
|
|
157
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Overrides the keys that adjust master volume. Optional — `+`/`=` (up) and
|
|
171
|
+
* `-`/`_` (down) stay active if this is never called. Pass empty arrays to
|
|
172
|
+
* disable volume keys entirely.
|
|
173
|
+
*
|
|
174
|
+
* @param up - Key(s) (`KeyboardEvent.key`) that raise volume. A string or array.
|
|
175
|
+
* @param down - Key(s) that lower volume. A string or array.
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* setVolumeKeys('9', '8') // numpad-ish remap; +/- no longer touch volume
|
|
179
|
+
* setVolumeKeys([], []) // disable built-in volume keys
|
|
180
|
+
*/
|
|
181
|
+
export function setVolumeKeys(up, down) {
|
|
182
|
+
_volumeUpKeys = Array.isArray(up) ? up : [up];
|
|
183
|
+
_volumeDownKeys = Array.isArray(down) ? down : [down];
|
|
184
|
+
}
|
|
158
185
|
/**
|
|
159
186
|
* Advances the key-repeat timer and returns the movement direction for this frame.
|
|
160
187
|
* Call once per frame with the frame delta in milliseconds.
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
|