From d6e998027b5660f26fc24421176f4b26a84f3656 Mon Sep 17 00:00:00 2001 From: Brian Fertig Date: Sat, 22 Aug 2026 14:55:50 -0600 Subject: [PATCH] Add smashable props (TV/chair/cone) with physics-based launch on bus collision - New SmashItemManager entity that spawns items from level data, detects bus contact, swaps to smashed frame, and applies up-and-forward impulse with tumble - Add `SMASH_ITEM` config block for launch speed/angle/spin, density, friction, restitution, and float height - Extend asset manifest and spritesheet (6 frames: intact/smashed TV, chair, cone) - Level editor gains "Smashables" section to place/delete items via click on preview map; exports `items` array in level data - Level editor can now import bundled or file-based levels, preserving exact terrain while locking section editing; metadata and items remain editable for re-export - Score scene reveals smashed item count as a bonus line (+50 each) between kids and time tally - PlayScene wires SmashItemManager lifecycle and passes smashedCount to score scene - README documents smashables feature, editor workflow, and import behavior --- README.md | 36 ++++ assets/sprites/bonus-items.png | Bin 0 -> 15769 bytes assets/sprites/bonus-items.psd | Bin 0 -> 43308 bytes assets/sprites/smash-items.png | Bin 0 -> 40155 bytes assets/sprites/smash-items.psd | Bin 0 -> 111487 bytes editor.html | 22 +++ src/config.js | 43 +++++ src/editor/exportLevel.js | 13 ++ src/editor/levelBuilder.js | 15 +- src/editor/main.js | 297 ++++++++++++++++++++++++++++++- src/entities/SmashItemManager.js | 157 ++++++++++++++++ src/scenes/LevelScoreScene.js | 55 ++++++ src/scenes/PlayScene.js | 9 + src/util/assetManifest.js | 5 + 14 files changed, 650 insertions(+), 2 deletions(-) create mode 100644 assets/sprites/bonus-items.png create mode 100644 assets/sprites/bonus-items.psd create mode 100644 assets/sprites/smash-items.png create mode 100644 assets/sprites/smash-items.psd create mode 100644 src/entities/SmashItemManager.js diff --git a/README.md b/README.md index 3b118f8..e7cbcf6 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ no code changes needed.** | `bus_wheel` | `assets/sprites/bus_wheel.png` | 52x52 | used for both wheels | | `kid_idle` | `assets/sprites/kid_idle.png` | 28x28 | passenger while aboard | | `kid_ejected` | `assets/sprites/kid_ejected.png` | 28x28 | passenger after being thrown off | +| `smash_items` | `assets/sprites/smash-items.png` | 64x64 x 6 frames | 1x6 spritesheet: intact/smashed TV, chair, cone (see Smashables below) | | `bg_far` | `assets/backgrounds/bg_far.png` | 256x540 | tiled, slowest parallax layer | | `bg_mid` | `assets/backgrounds/bg_mid.png` | 256x540 | tiled, mid parallax layer | | `bg_near` | `assets/backgrounds/bg_near.png` | 256x540 | tiled, fastest parallax layer | @@ -70,10 +71,45 @@ Everything worth tweaking lives in `src/config.js`, notably: doesn't empty the whole bus at once. - `BUS.*` - suspension stiffness/damping, wheel friction, throttle/lean torque and their clamps. +- `SMASH_ITEM.*` - smashable prop physics (launch speed/angle/spin, density, + etc. - see the block in config.js for the full list). `SMASH_ITEM.launchSpeed` + and `SMASH_ITEM.launchAngle` are the two knobs that matter most for "how far + and how high the item flies when the bus hits it." Set `DEBUG = true` in `config.js` to show a live g-force readout and Matter's physics debug overlay in `PlayScene`. +## Smashables (TV / chair / cone) + +`assets/sprites/smash-items.png` is a 1x6 spritesheet (TV, smashed TV, chair, +smashed chair, cone, smashed cone), loaded as the `smash_items` texture +(64x64 per frame). Any level can carry an optional `items` array +(see the editor's export for the exact shape): + +```js +items: [ + { type: 'tv', mode: 'float', x: 2500, y: 660 }, + { type: 'chair', mode: 'gravity', x: 3500, y: 760 }, +] +``` + +- `mode: 'float'` - the item rests exactly at `(x, y)` (a backdrop prop, + static body, never moves until smashed). +- `mode: 'gravity'` - the item spawns at `(x, y)` but is a dynamic body, so + it drops and settles onto the ground under that X at level start. + +The first time the bus (chassis or either wheel) touches an intact item it +swaps to its smashed frame and launches up-and-forward relative to the bus's +travel direction, tumbling, on the world's normal gravity. It lands wherever +it lands and stays. `SMASH_ITEM` in `config.js` holds the launch physics. +Smashed items also tally as +`SCORE.perSmashItem` (50) each on the +end-of-level score screen. + +The **level editor** (`editor.html`) has a "Smashables" section: pick a type ++ mode, then click anywhere on the preview map to drop one there; click an +existing item (on the map or in the list) to remove it. Exporting the level +writes the `items` array into the level file automatically. + ## Phaser 4 loading Phaser is vendored locally at `vendor/phaser.esm.js` (downloaded once from diff --git a/assets/sprites/bonus-items.png b/assets/sprites/bonus-items.png new file mode 100644 index 0000000000000000000000000000000000000000..4991c66ee3f086b61d9aa8a73e1f18ec6766b338 GIT binary patch literal 15769 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 Rf7`3!-pQ-TRm&I${~u){OSk|4 literal 0 HcmV?d00001 diff --git a/assets/sprites/bonus-items.psd b/assets/sprites/bonus-items.psd new file mode 100644 index 0000000000000000000000000000000000000000..4995052b7babeef9f6f261e176d7d8b2cb8b5964 GIT binary patch literal 43308 zcmdqJ1yo!~w4YB+@zRUjPb=XDhXf)IoYK{uf*Ka=q0 zIfbRbnJYuBz_zj5d04RGDRef!oO zy!#Iy;@!u?d-Rx?@Dct~0zAAYFP}Vp{+xt_cCc6uoi%#=V<2 z@4djs!+-Jr`}(sR!n+9x;zCz&UO~8cI9Kp+{_KaIV+H~D3TW=XT{muCyN-i<^~x=f z&HDhtxr&Q}dky!>)$6x0B!K+N)oXayAHKZt=oOQYlF?0kW-?=^00QBJ`kC{`ugR5F zOk4sJ3pPRNXMpX0=FK} zfP{kj8RnkzKbN38R{$@(D|nCq)Mic8JVtAdnj3Leuw||jxFFbJ6n?r{_d=pVel>P= z?t6jkD6TKhHIf%__vDq(XqNur&AX=NTGyK!_O29se*P!aruNB?i~Q!&#Tq*I`{So? zspJ*5EXIg)k2DBAez7>{AA+20ia%vmJ?yd+{G1jJ02$|+h}FG?5evqNq8l5REQwkopnUJc-JfMv3j4ud7Y0>Y*(iT z^)4?@Xm#zdQ>dxI6|cR_BR*w;wtFslq_1;gFE58ReL3RHY82eExp!r*nJdwy5bd%p z$RPFRXD1#_d)xS~iiotNB800-DH>aj&8lD{N1u9wP2@{w*T$%MyLO0Th0^Qes_8Vx zYdpqo7#ts&Rq;)_=+zv<4iL){MhX@62AQ5zGJN~11bZ3`jf8ckAs=eb)ZJuDQ{Ry; zYMS}}(BkMnFdG!=?q%B%OrrK+W@#FR!oEDHuz)TR;9G>*34tWbs!zGYhHs!J*0-v2RBU z&nWfcs&j^qR|xMHe%6wq>U}}jNRh0_v5DyKV^#a3#CCX?_!M^6UgP&0@AUFrhM$q% zm-_m=^Y^wLZz5_sIFZ=EX0WJ!da$S<9v&nrii7vy>c5N<`0X^;Hs0-TbUQoS*$9lT z8&NmreV0M%{cNG(dVBWT^3^Z1b-&<$B+BISUU4Ca+R006jIA+n4tgSE0a-S6ESqe* z^P`ugO2) zowx2WYi`u{nVd?^-3Ol0nCO2N{ci%FiEiE*F`a&YHFKEr=JQgKWLt4-M%o4k1k5u%0Ax5WRNi=FyyX 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 W`jJQluzM;ghN8UMhgw;)(EkD0NbE!a literal 0 HcmV?d00001 diff --git a/assets/sprites/smash-items.psd b/assets/sprites/smash-items.psd new file mode 100644 index 0000000000000000000000000000000000000000..fdb0a0042083e71b7599da838564a1a913b8e690 GIT binary patch literal 111487 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

K)_(n78{d>Bj!Cw{JjZc8q7Cho_jYCvp#pjPVdU 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 +

+

Smashables

+

Pick a type + placement mode, then click anywhere on the Preview map below to drop the item there. Click a placed item (on the map or in the list) to delete it.

+
+
+
+

Preview

diff --git a/src/config.js b/src/config.js index 0f7cf65..cecd3cd 100644 --- a/src/config.js +++ b/src/config.js @@ -195,6 +195,49 @@ export const SCORE = { perKidSaved: 100, perKidLost: -50, perSecondRemaining: 10, + // Per smashable item (TV/chair/cone, see SMASH_ITEM) knocked off its + // perch by the bus - revealed on the tally between the kids and the clock. + perSmashItem: 50, +}; + +// Smashable items (assets/sprites/smash-items.png - 6 frames of 64x64, one +// intact + one smashed variant per prop, see src/entities/SmashItemManager.js +// for the type/frame table). Placed per-level via the editor ("Smashables" +// section) and exported into the level's `items` array. +// +// At rest an item sits in the background like a prop: either floating +// exactly where the editor placed it (mode 'float') or resting on the +// ground (mode 'gravity'). The first time the bus touches it it swaps to +// its smashed frame and launches up-and-forward into the air on the +// world's REAL gravity (the full value in main.js - unlike ejected kids, +// which fly under a reduced fraction, see KID.ejectedGravityScale), +// tumbling as it goes, then lands and stays where it lands. +export const SMASH_ITEM = { + radius: 22 * WORLD_SCALE, // circle hitbox (~70% of the 64px frame's display half) + displaySize: 64 * WORLD_SCALE, // one 64x64 frame, shown square + density: 0.001, + friction: 0.5, + frictionAir: 0.005, // a little air drag while airborne + restitution: 0.2, // small bounce on landing + // Launch applied at the moment of the hit: straight up-and-forward + // relative to the bus's travel direction, so the item always sails off + // ahead and above the bus regardless of which way it's going. + // Speeds are in Matter units (px per 60Hz physics step, same convention as + // every other velocity in this codebase - see KID.restSpeedThreshold etc. + // The bus itself cruises at roughly single-digit to low-double-digit + // px/step, so a launch in the ~25 range reads as "sent flying"). + // Calibrated by simulating Matter's own integration under the world's + // 1.35 px/step^2 gravity: speed 26 at 0.7 rad above horizontal gives ~1.4s + // hang, ~320px up (a quarter of the screen), ~1300px forward - the bus + // covers most of that same distance in the same time, so the item lands + // just ahead of the bus, still on screen. + launchSpeed: 26, + launchAngle: 0.7, + launchSpin: 0.16, // radians of angular velocity per physics step (tumble) + // In 'float' mode the editor's placement Y IS the item's resting spot - + // this is how high (above the ground point under the placement X) a float + // item rests. Gravity-mode items ignore it (they drop to the ground). + floatHeight: 90 * WORLD_SCALE, }; export const CAMERA = { diff --git a/src/editor/exportLevel.js b/src/editor/exportLevel.js index c74f238..eb922d0 100644 --- a/src/editor/exportLevel.js +++ b/src/editor/exportLevel.js @@ -20,6 +20,16 @@ function rectLiteral(rect) { return `{ x: ${rect.x}, y: ${rect.y}, width: ${rect.width}, height: ${rect.height} }`; } +// Smashable item placements (editor "Smashables" section) - one literal +// object per item, same field order as levelBuilder.js emits them. +function itemsLiteral(items) { + if (!items || items.length === 0) return '[]'; + const lines = items.map( + (it) => ` { type: ${JSON.stringify(it.type)}, mode: ${JSON.stringify(it.mode)}, x: ${it.x}, y: ${it.y} },` + ); + return `[\n${lines.join('\n')}\n ]`; +} + export function exportLevelToSource(levelData) { const lines = [ '// Generated by editor.html - review before dropping into src/data/levels/.', @@ -33,6 +43,9 @@ export function exportLevelToSource(levelData) { ` startAngle: ${levelData.startAngle},`, ` terrain: ${terrainLiteral(levelData.terrain)},`, ' obstacles: [],', + // Only emitted when the level actually has items - keeps hand-authored + // levels' exports byte-identical to before this feature existed. + ...(levelData.items && levelData.items.length > 0 ? [` items: ${itemsLiteral(levelData.items)},`] : []), ` goal: ${rectLiteral(levelData.goal)},`, ` cameraBounds: ${rectLiteral(levelData.cameraBounds)},`, '};', diff --git a/src/editor/levelBuilder.js b/src/editor/levelBuilder.js index d2b1707..a13ea05 100644 --- a/src/editor/levelBuilder.js +++ b/src/editor/levelBuilder.js @@ -156,9 +156,12 @@ function appendPoints(accumulator, points) { // the previous section's (see smoothEntry above) - off by default, since a // "Sharp Incline" or a jump's ramp is often supposed to look abrupt. // metadata: { id, name, description, kidsAboard }. +// items: optional array of smashable prop placements { type, mode, x, y } +// (see SmashItemManager in the game) - passed through verbatim into the +// level's `items` array; null/absent = no items. // Returns a full level data object matching level01.js's shape, or null if // sections is empty. -export function buildLevelData(sections, metadata) { +export function buildLevelData(sections, metadata, items) { if (!sections || sections.length === 0) return null; let baseX = -TERRAIN_LEAD_IN; @@ -245,6 +248,16 @@ export function buildLevelData(sections, metadata) { startAngle: 0, terrain: terrainSegments, obstacles: [], + // Smashable items (editor "Smashables" section) - only in the level + // data when at least one was placed, so old hand-authored levels + // (which have no `items` key at all) keep working: SmashItemManager + // reads `level.items || []`. + ...(items && items.length > 0 ? { items: items.map((it) => ({ + type: it.type, + mode: it.mode, + x: Math.round(it.x), + y: Math.round(it.y), + })) } : {}), goal: { x: goalX, y: groundYAtEnd - Math.round(GOAL_HEIGHT_OFFSET * WORLD_SCALE), diff --git a/src/editor/main.js b/src/editor/main.js index 228c4b0..039084f 100644 --- a/src/editor/main.js +++ b/src/editor/main.js @@ -20,6 +20,13 @@ const state = { metadata: { id: 'levelCustom', name: 'New Level', description: '', kidsAboard: 3 }, sequence: [{ type: 'flat', width: SECTION_WIDTH, vScale: 1, smooth: false }], selectedIndex: null, + // Smashable props placed on the course (see the "Smashables" section below + // and SmashItemManager in the game). x/y are in the SAME scaled world units + // the preview canvas plots (and that the exported level uses); refIndex is + // the track section the item was added under (rebased on reordering). + items: [], + itemsType: 'tv', + itemsMode: 'float', }; const paletteEl = document.getElementById('palette'); @@ -38,6 +45,8 @@ const previewScrollEl = document.getElementById('preview-scroll'); const previewCanvas = document.getElementById('preview-canvas'); const exportTextarea = document.getElementById('export-textarea'); const downloadBtn = document.getElementById('download-btn'); +const itemsFormEl = document.getElementById('items-form'); +const itemsListEl = document.getElementById('items-list'); const labelFor = (typeId) => SECTION_TYPES.find((t) => t.id === typeId)?.label || typeId; @@ -59,6 +68,147 @@ function buildPalette() { } } +// --- Smashable items --------------------------------------------------- + +const ITEM_TYPES = [ + { id: 'tv', label: 'TV' }, + { id: 'chair', label: 'Chair' }, + { id: 'cone', label: 'Cone' }, +]; +const ITEM_COLORS = { tv: '#4a90d9', chair: '#d9a04a', cone: '#d96a4a' }; +const ITEM_ICONS = { tv: 'TV', chair: 'CH', cone: 'CO' }; +// The real spritesheet, loaded directly as an for the preview map +// (frames: 0 TV, 1 smashed TV, 2 chair, 3 smashed chair, 4 cone, 5 smashed +// cone - 64x64 cells, same order as ITEM_TYPES pairs above). The circle +// fallback in drawPreview covers the brief moment before it finishes loading +// and any file:// context where the image is blocked. +const ITEM_SPRITE = new Image(); +ITEM_SPRITE.src = 'assets/sprites/smash-items.png'; +const ITEM_SPRITE_FRAMES = { tv: 0, chair: 2, cone: 4 }; +const ITEM_SPRITE_CELL = 64; + +// Samples the terrain surface Y (highest ground) at a given world X - used +// to draw the "falls to here" drop line for gravity-mode items in the +// preview. Same "first segment whose x-span contains X" logic the physics +// engine effectively applies when the item settles. +function terrainSurfaceY(levelData, x) { + let best = Infinity; + for (const segment of levelData.terrain) { + const pts = segment.points; + for (let i = 0; i < pts.length - 1; i++) { + const a = pts[i]; + const b = pts[i + 1]; + const lo = Math.min(a.x, b.x); + const hi = Math.max(a.x, b.x); + if (x < lo || x > hi) continue; + const t = (b.x === a.x) ? 0 : (x - a.x) / (b.x - a.x); + best = Math.min(best, a.y + (b.y - a.y) * t); + } + } + return best; +} + +function buildItemsForm() { + itemsFormEl.innerHTML = ''; + + const fieldset = document.createElement('div'); + fieldset.style.display = 'flex'; + fieldset.style.flexWrap = 'wrap'; + fieldset.style.gap = '16px'; + itemsFormEl.appendChild(fieldset); + + const typeSelect = document.createElement('select'); + typeSelect.id = 'items-type'; + for (const t of ITEM_TYPES) { + const opt = document.createElement('option'); + opt.value = t.id; + opt.textContent = t.label; + if (t.id === state.itemsType) opt.selected = true; + typeSelect.appendChild(opt); + } + typeSelect.addEventListener('change', () => { + state.itemsType = typeSelect.value; + render(); + }); + const typeWrap = document.createElement('label'); + typeWrap.className = 'size-field'; + typeWrap.append('Item type', typeSelect); + fieldset.appendChild(typeWrap); + + const modeRadios = []; + for (const mode of ['float', 'gravity']) { + const radio = document.createElement('input'); + radio.type = 'radio'; + radio.name = 'items-mode'; + radio.value = mode; + radio.id = `items-mode-${mode}`; + if (mode === state.itemsMode) radio.checked = true; + radio.addEventListener('change', () => { + state.itemsMode = mode; + render(); + }); + const label = document.createElement('label'); + label.className = 'checkbox-row'; + label.append(radio, mode === 'float' ? 'Float (stays where placed)' : 'Gravity (falls to the ground)'); + modeRadios.push(label); + } + const modeWrap = document.createElement('div'); + modeWrap.className = 'size-field'; + modeWrap.append('Placement mode', ...modeRadios); + fieldset.appendChild(modeWrap); + + const hint = document.createElement('p'); + hint.style.margin = '8px 0 0'; + hint.style.color = '#9aa7bb'; + hint.style.fontSize = '12px'; + hint.textContent = 'Pick a type + mode, then click anywhere on the Preview map above to place the item there. Click a placed item in the list to delete it.'; + itemsFormEl.appendChild(hint); +} + +function itemLabel(item, index) { + const t = ITEM_TYPES.find((x) => x.id === item.type); + return `${index + 1}. ${t ? t.label : item.type} @ (${Math.round(item.x)}, ${Math.round(item.y)}) [${item.mode}]`; +} + +function buildItemsList() { + itemsListEl.innerHTML = ''; + if (state.items.length === 0) { + const empty = document.createElement('div'); + empty.style.color = '#9aa7bb'; + empty.style.fontSize = '12px'; + empty.textContent = 'No items placed yet.'; + itemsListEl.appendChild(empty); + return; + } + state.items.forEach((item, index) => { + const el = document.createElement('div'); + el.className = 'item-row'; + el.style.cssText = 'display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 10px;background:#1a2236;border:1px solid #2c374f;border-radius:4px;'; + const dot = document.createElement('span'); + dot.style.cssText = `width:10px;height:10px;border-radius:50%;background:${ITEM_COLORS[item.type] || '#888'};flex:none;`; + const text = document.createElement('span'); + text.textContent = itemLabel(item, index); + const del = document.createElement('span'); + del.textContent = '\u2715'; + del.style.cssText = 'margin-left:auto;cursor:pointer;color:#c0392b;'; + el.title = 'Click to delete'; + el.addEventListener('click', () => { + state.items.splice(index, 1); + render(); + }); + el.append(dot, text, del); + itemsListEl.appendChild(el); + }); +} + +// Rebase item refIndex references after sequence reordering - track item +// indexes shift when sections move, so keep items attached to their section. +function rebaseItemRefs(oldToNew) { + for (const item of state.items) { + if (oldToNew.has(item.refIndex)) item.refIndex = oldToNew.get(item.refIndex); + } +} + function buildMetadataForm() { metadataFormEl.innerHTML = ''; @@ -199,16 +349,24 @@ smoothCheckboxEl.addEventListener('change', () => { moveLeftBtn.addEventListener('click', () => { const i = state.selectedIndex; if (i === null || i <= 1) return; + const oldToNew = new Map(); + oldToNew.set(i, i - 1); + oldToNew.set(i - 1, i); [state.sequence[i - 1], state.sequence[i]] = [state.sequence[i], state.sequence[i - 1]]; state.selectedIndex = i - 1; + rebaseItemRefs(oldToNew); render(); }); moveRightBtn.addEventListener('click', () => { const i = state.selectedIndex; if (i === null || i === 0 || i === state.sequence.length - 1) return; + const oldToNew = new Map(); + oldToNew.set(i, i + 1); + oldToNew.set(i + 1, i); [state.sequence[i + 1], state.sequence[i]] = [state.sequence[i], state.sequence[i + 1]]; state.selectedIndex = i + 1; + rebaseItemRefs(oldToNew); render(); }); @@ -217,6 +375,13 @@ removeBtn.addEventListener('click', () => { if (i === null || i === 0) return; state.sequence.splice(i, 1); state.selectedIndex = null; + // Items referenced removed/shifted sections keep their position (they were + // placed in world space anyway) but their refIndex is now meaningless - + // clamp it to a valid index for display purposes only. + for (const item of state.items) { + if (item.refIndex >= state.sequence.length) item.refIndex = state.sequence.length - 1; + else if (item.refIndex > i) item.refIndex -= 1; + } render(); }); @@ -317,6 +482,10 @@ function drawPreview(levelData) { ctx.font = 'bold 12px monospace'; ctx.fillText('S', sx - 4, sy + 4); + // Cache the preview bounds for the click handler below (it inverts the + // same scale to map screen px back to world units). + previewBounds = { minX, minY }; + const g = levelData.goal; const gx = screenX(g.x); const gyTop = screenY(g.y - g.height / 2); @@ -330,8 +499,132 @@ function drawPreview(levelData) { ctx.fillStyle = '#f2c14e'; ctx.font = '12px monospace'; ctx.fillText('GOAL', gx - 16, gyTop - 6); + + // Placed smashable items: the real sprite frame at the placement point + // (same space as terrain/start/goal, so the click-to-place mapping below + // is exact). Gravity items also get a dashed drop line down to the ground + // under that X - where they'll actually settle - with a small arrowhead. + const itemDrawScale = 26; // px on the preview map, per 64px source cell + for (const item of state.items) { + const ix = screenX(item.x); + const iy = screenY(item.y); + const color = ITEM_COLORS[item.type] || '#888'; + + if (item.mode === 'gravity') { + const groundY = terrainSurfaceY(levelData, item.x); + if (groundY !== Infinity) { + const gy = screenY(groundY); + ctx.save(); + ctx.setLineDash([4, 4]); + ctx.strokeStyle = color; + ctx.lineWidth = 1.5; + ctx.beginPath(); + ctx.moveTo(ix, iy + itemDrawScale / 2); + ctx.lineTo(ix, gy - 4); + ctx.stroke(); + ctx.setLineDash([]); + // arrowhead + ctx.fillStyle = color; + ctx.beginPath(); + ctx.moveTo(ix, gy); + ctx.lineTo(ix - 4, gy - 7); + ctx.lineTo(ix + 4, gy - 7); + ctx.closePath(); + ctx.fill(); + ctx.restore(); + } + } + + const frame = ITEM_SPRITE_FRAMES[item.type]; + if (ITEM_SPRITE.complete && ITEM_SPRITE.naturalWidth > 0 && frame !== undefined) { + const half = itemDrawScale / 2; + // float items get a light outline glow so they read as "held in place"; + // gravity items rest on (or fall to) the ground, drawn as-is. + if (item.mode === 'float') { + ctx.save(); + ctx.strokeStyle = 'rgba(255,255,255,0.85)'; + ctx.lineWidth = 1.5; + ctx.strokeRect(ix - half - 1, iy - half - 1, itemDrawScale + 2, itemDrawScale + 2); + ctx.restore(); + } + ctx.drawImage( + ITEM_SPRITE, + frame * ITEM_SPRITE_CELL, 0, ITEM_SPRITE_CELL, ITEM_SPRITE_CELL, + ix - half, iy - half, itemDrawScale, itemDrawScale, + ); + } else { + // Sprite not loaded (yet) - colored circle + letter, as before. + ctx.beginPath(); + ctx.arc(ix, iy, 8, 0, Math.PI * 2); + ctx.fillStyle = color; + ctx.fill(); + ctx.fillStyle = '#0b0e14'; + ctx.font = 'bold 9px monospace'; + ctx.fillText(ITEM_ICONS[item.type] || '??', ix - 4, iy + 3); + } + } + + // If an item was just added (by the click handler that runs right after + // this draw), give it a one-frame highlight ring so the placement is + // visible even when it overlaps terrain. + if (state._lastPlacedItem) { + const it = state._lastPlacedItem; + const ix = screenX(it.x); + const iy = screenY(it.y); + ctx.strokeStyle = '#ffffff'; + ctx.lineWidth = 2; + ctx.beginPath(); + ctx.arc(ix, iy, 12, 0, Math.PI * 2); + ctx.stroke(); + state._lastPlacedItem = null; + } } +// --- Click-to-place items on the preview canvas ------------------------- + +// The preview canvas is the "map" the user clicks on. A click anywhere +// (except on an existing item, which deletes it) adds a new smashable item +// at that world position using the currently selected type + mode from the +// "Smashables" form above. The screen<->world mapping is the same +// H_PX_PER_UNIT scale drawPreview used, so a click at screen (sx, sy) maps +// to world ((sx - PADDING)/H_PX_PER_UNIT + minX, (sy - PADDING)/H_PX_PER_UNIT + minY). +let previewBounds = null; // set by drawPreview each render + +previewCanvas.addEventListener('click', (e) => { + if (!currentLevelData || !previewBounds) return; + + const rect = previewCanvas.getBoundingClientRect(); + const sx = (e.clientX - rect.left) * (previewCanvas.width / rect.width); + const sy = (e.clientY - rect.top) * (previewCanvas.height / rect.height); + + // Delete? If the click is within ~12px of an existing item, remove it. + for (let i = state.items.length - 1; i >= 0; i--) { + const it = state.items[i]; + const ix = (it.x - previewBounds.minX) * H_PX_PER_UNIT + PADDING; + const iy = (it.y - previewBounds.minY) * H_PX_PER_UNIT + PADDING; + if (Math.hypot(sx - ix, sy - iy) <= 12) { + state.items.splice(i, 1); + render(); + return; + } + } + + // Otherwise: place a new item at this world position. + const worldX = (sx - PADDING) / H_PX_PER_UNIT + previewBounds.minX; + const worldY = (sy - PADDING) / H_PX_PER_UNIT + previewBounds.minY; + + const item = { + type: state.itemsType, + mode: state.itemsMode, + x: Math.round(worldX), + y: Math.round(worldY), + refIndex: state.selectedIndex !== null ? state.selectedIndex : 0, + }; + state.items.push(item); + state._lastPlacedItem = item; + render(); +}); + // --- Export -------------------------------------------------------------- let currentLevelData = null; @@ -356,8 +649,9 @@ function render() { buildTrack(); updateTrackControls(); updateSizePanel(); + buildItemsList(); - currentLevelData = buildLevelData(state.sequence, state.metadata); + currentLevelData = buildLevelData(state.sequence, state.metadata, state.items); if (!currentLevelData) { previewScrollEl.innerHTML = '
Add a section to see the preview.
'; @@ -388,5 +682,6 @@ function initSizeControls() { buildPalette(); buildMetadataForm(); +buildItemsForm(); initSizeControls(); render(); diff --git a/src/entities/SmashItemManager.js b/src/entities/SmashItemManager.js new file mode 100644 index 0000000..44c7ce6 --- /dev/null +++ b/src/entities/SmashItemManager.js @@ -0,0 +1,157 @@ +import { SMASH_ITEM } from '../config.js'; + +// smash-items.png is 6 frames of 64x64, in order: +// 0 intact TV, 1 smashed TV, 2 intact chair, 3 smashed chair, +// 4 intact cone, 5 smashed cone. +const ITEM_TYPES = { + tv: { baseFrame: 0, smashedFrame: 1, label: 'TV' }, + chair: { baseFrame: 2, smashedFrame: 3, label: 'Chair' }, + cone: { baseFrame: 4, smashedFrame: 5, label: 'Cone' }, +}; + +export default class SmashItemManager { + /** + * @param scene PlayScene + * @param bus the level's Bus + * @param level the level data object (items come from `level.items`) + * + * Owns the level's smashable props: builds one image+body per item, + * watches for the bus touching an intact item, and flies each one off + * with a smash (swap to its smashed frame + up-and-forward impulse on the + * world's real gravity). Float items stay exactly where placed; gravity + * items settle onto the ground at level start. + */ + constructor(scene, bus, level) { + this.scene = scene; + this.bus = bus; + this.items = []; + + for (const spec of level.items || []) { + const item = this._buildItem(spec); + if (item) this.items.push(item); + } + + // The bus's bodies that can count as "the bus hitting an item": chassis + // + both wheels (the wheel usually does the touching). The compartment + // fixtures are intentionally NOT here - their collisionFilter mask is + // kidCategory-only, so an item can never actually collide with them + // (and neither can it with the kids, whose bodies are on a separate + // category the items don't mask against). + this._busBodies = [ + bus.chassis.body, + bus.wheelRear.body, + bus.wheelFront.body, + ]; + + scene.matter.world.on('collisionstart', (event) => this._onCollisionStart(event)); + } + + get smashedCount() { + return this.items.filter((item) => item.smashed).length; + } + + _buildItem(spec) { + const type = ITEM_TYPES[spec.type]; + if (!type) return null; // unknown/misspelled type in a level file - skip + + const scene = this.scene; + const isFloat = spec.mode === 'float'; + + // Both modes spawn at the editor's exact placement (spec.x, spec.y). + // Float items are static, so they simply stay there. Gravity items are + // dynamic, so the first physics step lets them drop onto the ground + // under that X and settle - the "falls to the ground" behavior. + const image = scene.matter.add.image(spec.x, spec.y, 'smash_items', type.baseFrame, { + shape: { type: 'circle', radius: SMASH_ITEM.radius }, + density: SMASH_ITEM.density, + friction: SMASH_ITEM.friction, + frictionAir: SMASH_ITEM.frictionAir, + restitution: SMASH_ITEM.restitution, + }); + image.setDisplaySize(SMASH_ITEM.displaySize, SMASH_ITEM.displaySize); + image.setDepth(1); // same layer as the kids - over the ground, under the bus + image.setAngle(0); + + // Intact items are STATIC (a solid prop, infinite mass in the engine's + // bookkeeping). A gravity item is left dynamic (it still "rests" where + // the editor put it, just supported by the terrain); a float item is + // made static here so it holds its placed height forever. When smashed, + // setStatic(false) restores the body's real density/mass so the launch + // moves it. (setStatic is a Phaser Matter component on the body wrapper, + // not on the raw Matter body - see Bus.js / the vendored build.) + if (isFloat) image.setStatic(true); + + return { spec, type, image, smashed: false }; + } + + // Phaser's Matter plugin re-emits matter-js's `collisionStart` as + // `collisionstart` with the raw event (see World.js in the vendored build): + // the event carries `pairs`, each with `.bodyA`/`.bodyB` - there is no + // top-level event.bodyA (PlayScene._onCollisionStart's + // `bodyA`/`bodyB` params are actually undefined at runtime; it still works + // because its handler is a no-op for this event shape - don't copy that + // pattern). + _onCollisionStart(event) { + const pairs = (event && event.pairs) || []; + for (const pair of pairs) { + const bodyA = pair.bodyA; + const bodyB = pair.bodyB; + for (const item of this.items) { + if (item.smashed) continue; + if (item.image.body !== bodyA && item.image.body !== bodyB) continue; + const other = item.image.body === bodyA ? bodyB : bodyA; + if (!this._busBodies.includes(other)) continue; + + this._smash(item); + this.scene.events.emit('item-smashed', { index: this.items.indexOf(item) }); + // Each item smashes at most once, so no `break` needed past the + // per-pair scan; this loop is O(pairs * items) per physics step, + // both tiny for any level we'd plausibly author. + } + } + } + + // The smash: swap to the smashed frame, make the body dynamic (so the + // launch actually moves it), and give it the up-and-forward impulse. + _smash(item) { + const image = item.image; + const dirX = Math.sign(this.bus.chassis.body.velocity.x) >= 0 ? 1 : -1; + + // setStatic(false) (Phaser component, same as in _buildItem) restores + // the body's saved real mass/inertia - matter-js stashed them when the + // body was made static - so the velocity math below is meaningful. For + // items that were never static (gravity items) this is a no-op. + image.setStatic(false); + + image.setFrame(item.type.smashedFrame); + + // Launch up-and-forward relative to where the bus is HEADED, so the item + // always sails off ahead of it - even on a backward hit. + // `launchAngle` is a positive magnitude (radians above horizontal): + // velocity.x = dirX * cos(angle) * speed (forward, in bus's direction) + // velocity.y = -sin(angle) * speed (always upward = negative Y) + // This works for both leftward and rightward bus motion. + // image.setVelocity / setAngularVelocity are the Phaser Matter components + // (the raw body has no such methods - see Components.Velocity in the + // vendored build); they delegate to the same Body.setVelocity that the + // rest of this codebase uses via KidManager / Bus. + const angle = Math.abs(SMASH_ITEM.launchAngle); + const speed = SMASH_ITEM.launchSpeed; + image.setVelocity( + dirX * Math.cos(angle) * speed, + -Math.sin(angle) * speed, + ); + + // A visible tumble while airborne. matter-js stores angular velocity in + // radians PER PHYSICS STEP (not per second) - hence the small value. + image.setAngularVelocity(SMASH_ITEM.launchSpin * dirX); + + item.smashed = true; + } + + destroy() { + // Nothing to do: the Matter world's shutdown removes the bodies and its + // registered listeners (and nulls scene.matter before this runs), matching + // the empty destroy() in Bus.js. + } +} diff --git a/src/scenes/LevelScoreScene.js b/src/scenes/LevelScoreScene.js index be77d86..6b2b038 100644 --- a/src/scenes/LevelScoreScene.js +++ b/src/scenes/LevelScoreScene.js @@ -25,6 +25,7 @@ export default class LevelScoreScene extends Phaser.Scene { this.kidsSaved = data.kidsSaved; this.total = data.total; this.kidResults = data.kidResults; // boolean[] per seat - true = made it + this.smashedItems = data.smashedItems || 0; this.timeRemainingSeconds = data.timeRemainingSeconds; this.freezeKey = data.freezeKey; this.runningScore = 0; @@ -104,6 +105,9 @@ export default class LevelScoreScene extends Phaser.Scene { await this._slamKidsIntoScore(); await this._wait(300); + await this._revealSmashed(); + await this._wait(300); + await this._tallyTimeRemaining(); await this._wait(400); @@ -227,6 +231,57 @@ export default class LevelScoreScene extends Phaser.Scene { } } + // The level's smashed props tally in as a single bonus line (one row, not + // one per item - the count can be large and the row is just flavor anyway): + // a smashed-cone icon plus "+50 x N" slams into the score, like the kids. + // Skipped entirely when the level had no items / none got smashed, so + // itemless levels keep their exact old tally flow. + async _revealSmashed() { + if (this.smashedItems <= 0) return; + + this._playSound('score_count'); + + const x = GAME_WIDTH / 2; + const sprite = this.add.image(x, KID_ROW_Y, 'smash_items', 5) // smashed cone = the archetypal "smashed" icon + .setDisplaySize(KID_SPRITE_SIZE, KID_SPRITE_SIZE) + .setScale(0) + .setDepth(10); + + const label = this.add.text(x, KID_ROW_Y + KID_SPRITE_SIZE * 0.7, `Smashed x${this.smashedItems} +${this.smashedItems * SCORE.perSmashItem}`, { + fontFamily: 'monospace', + fontSize: `${18 * WORLD_SCALE}px`, + fontStyle: 'bold', + color: '#f2c14e', + stroke: '#1a1f29', + strokeThickness: 4 * WORLD_SCALE, + }).setOrigin(0.5).setAlpha(0).setDepth(10); + + await Promise.all([ + this._tween({ targets: sprite, scale: 1, duration: 300, ease: 'Back.easeOut' }), + this.tweens.add({ targets: label, alpha: 1, duration: 200 }), + ]); + await this._wait(180); + + await this._tween({ + targets: label, + x: this.scoreValueText.x, + y: this.scoreValueText.y, + scale: 0.4, + alpha: 0, + duration: 260, + ease: 'Cubic.easeIn', + }); + label.destroy(); + + this.runningScore += this.smashedItems * SCORE.perSmashItem; + this.scoreValueText.setText(String(this.runningScore)); + this._punch(this.scoreValueText); + this._playSound('score_count'); + this.cameras.main.shake(70, 0.004); + + sprite.destroy(); + } + _showContinueButton() { const y = GAME_HEIGHT * 0.86; const { bg, text } = createButton(this, GAME_WIDTH / 2, y, 'CONTINUE', () => { diff --git a/src/scenes/PlayScene.js b/src/scenes/PlayScene.js index be86fa1..4b5b7f9 100644 --- a/src/scenes/PlayScene.js +++ b/src/scenes/PlayScene.js @@ -7,6 +7,7 @@ import FinishLine from '../entities/FinishLine.js'; import InputController from '../systems/InputController.js'; import GForceMonitor from '../systems/GForceMonitor.js'; import KidManager from '../systems/KidManager.js'; +import SmashItemManager from '../entities/SmashItemManager.js'; import CameraRig from '../systems/CameraRig.js'; import EngineSound from '../systems/EngineSound.js'; import { stopMenuMusic } from '../util/music.js'; @@ -42,6 +43,11 @@ export default class PlayScene extends Phaser.Scene { this.kidManager = new KidManager(this, this.bus, this.level.kidsAboard); + // Smashable props (TV/chair/cone) placed in the editor's "Smashables" + // section - they watch for the bus touching an intact item and fly it + // off (see SmashItemManager). No items in a level = no-op. + this.smashItems = new SmashItemManager(this, this.bus, this.level); + // Troubleshooting overlay: renders the invisible compartment fixtures // (floor + walls) as simple rectangles tracking the bus, plus per-kid // state readout. Off by default - toggle COMPARTMENT_DEBUG in config.js. @@ -294,6 +300,7 @@ export default class PlayScene extends Phaser.Scene { const kidsSaved = this.kidManager.kidsAboardCount; const total = this.kidManager.total; const kidResults = this.kidManager.kids.map((kid) => kid.state === 'aboard'); + const smashedItems = this.smashItems.smashedCount; const timeRemainingSeconds = Math.max(0, Math.ceil(this._timeRemaining)); // Renderer.snapshot() only resolves after the NEXT frame renders, but @@ -310,6 +317,7 @@ export default class PlayScene extends Phaser.Scene { kidsSaved, total, kidResults, + smashedItems, timeRemainingSeconds, freezeKey, }); @@ -329,6 +337,7 @@ export default class PlayScene extends Phaser.Scene { if (this.compartmentDebug) this.compartmentDebug.destroy(); if (this.gForceMonitor) this.gForceMonitor.destroy(); if (this.kidManager) this.kidManager.destroy(); + if (this.smashItems) this.smashItems.destroy(); if (this.engineSound) this.engineSound.destroy(); if (this.voiceSound) this.voiceSound.stop(); if (this.bus) this.bus.destroy(); diff --git a/src/util/assetManifest.js b/src/util/assetManifest.js index bbff0b0..c6a6744 100644 --- a/src/util/assetManifest.js +++ b/src/util/assetManifest.js @@ -14,6 +14,11 @@ export const ASSET_MANIFEST = [ // as before - only used for the single-frame placeholder fallback. { key: 'kid_idle', path: 'assets/sprites/kid_idle.png', width: 28 * WORLD_SCALE, height: 28 * WORLD_SCALE, kind: 'circle', color: 0xf2c14e, frameWidth: 56, frameHeight: 56 }, { key: 'kid_ejected', path: 'assets/sprites/kid_ejected.png', width: 28 * WORLD_SCALE, height: 28 * WORLD_SCALE, kind: 'circle', color: 0xe0553b, frameWidth: 56, frameHeight: 56 }, + // 6 frames of 64x64 smashable props (intact/smashed TV, chair, cone) - + // see SMASH_ITEM in config.js and src/entities/SmashItemManager.js. + // frameWidth/frameHeight are raw SOURCE pixels (one 64x64 cell each), + // same convention as the kid sheets above. + { key: 'smash_items', path: 'assets/sprites/smash-items.png', width: 64 * WORLD_SCALE, height: 64 * WORLD_SCALE, kind: 'rect', color: 0x4c8a5c, frameWidth: 64, frameHeight: 64 }, { key: 'bg_far', path: 'assets/backgrounds/bg_far.png', width: 256 * WORLD_SCALE, height: 540 * WORLD_SCALE, kind: 'rect', color: 0x8fc7e8, tileable: true }, { key: 'bg_mid', path: 'assets/backgrounds/bg_mid.png', width: 256 * WORLD_SCALE, height: 540 * WORLD_SCALE, kind: 'rect', color: 0x6fae7d, tileable: true }, { key: 'bg_near', path: 'assets/backgrounds/bg_near.png', width: 256 * WORLD_SCALE, height: 540 * WORLD_SCALE, kind: 'rect', color: 0x4c8a5c, tileable: true },