Skip to content

LD60: draw Spiral Tunnel's edges and rocks over the wall fill - #186

Merged
alecu merged 1 commit into
mainfrom
ld60-tunnel-walls-two-layers
Oct 31, 2026
Merged

alecu merged 1 commit into
mainfrom
ld60-tunnel-walls-two-layers

Conversation

@alecu

@alecu alecu commented Oct 31, 2026

Copy link
Copy Markdown
Collaborator

Spiral Tunnel's walls get the two-layer treatment the Catch the Robots maze got in #183.

Why

On a TUNNEL layer the renderer walks a tile column one texel row at a time, and several rows can land on the same LED; the last one drawn wins. Spiral Tunnel's brown fill and its one-pixel yellow edges (and the rocks from #183) shared one tile strip. Where rows bunched up, toward the middle of the disc, the fill drawn after an edge or a rock covered it, and the edges broke up.

What

The walls are now two tilemaps over the same cells, scrolled together:

  • tiles.png: the plain brown fill.
  • details.png: the yellow edges and the rocks on a clear background, drawn over the fill.

Nothing in details.png draws after an edge or a rock, so they always show.

  • Each strip has all 35 frames, so both can read the same cells. That costs one more strip, about 2 KB.
  • Together they paint exactly the old tile strip; make_art.py checks out pixel for pixel. So the menu icon is unchanged.

Tests

  • New test: the details tilemap shares the fill's cells, draws after it and before the sprites, and scrolls with it.
  • Suite and build: tests/test_ld60_games.py passes and mpy-cross compiles the game.
  • Web emulator: the yellow edges run unbroken right down to the centre of the spiral, and the rocks show all the way in.

🤖 Generated with Claude Code

The same fix as the Catch the Robots maze. On a TUNNEL layer several rows of
a tile can land on one LED, and the last one drawn wins, so the brown fill
could cover a one-pixel yellow edge, or a rock, painted earlier in the same
tile. Toward the middle of the disc, where rows bunch up most, the edges broke
up.

The walls are now two tilemaps over the same cells, scrolled together:
tiles.png holds the plain brown fill, and details.png holds the yellow edges
and the rocks on a clear background, drawn over it. Each strip has all 35
frames, so both read the same cells. Together they paint exactly the old tile
strip, so the menu icon is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@alecu
alecu merged commit b4730fc into main Oct 31, 2026
4 checks passed
@alecu
alecu deleted the ld60-tunnel-walls-two-layers branch October 31, 2026 00:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant