Draw the tutorial properly, and put the logo and gore on the menu
The tutorial was borrowing a court tile, the in-game how-to icon and a weapon icon, none of which were drawn to be looked at. Four purpose-made 2:1 panels now: the serve with a tapping hand, the slingshot pull with chevrons into a zombie, the weapon rack, and the floodlit duel. They get the full card width above Marvin instead of being squeezed into the text column beside him. The menu wears the title logo instead of a Silkscreen headline, and the two buttons wear generated plates — START GAME bloodied, TUTORIAL nearly clean. The lettering stays Silkscreen on top: generated type is a lottery and would not match the rest of the HUD. Two things the art needed. Quantise the panels at 128 colours, not 64 — big flat fields with saturated accents is where a small palette shows, and 64 turned the tennis ball beige. And find a plate by its BRIGHT BORDER, never by the corner colour: one plate came back on a near-black margin, the other on a transparency checkerboard that differs from itself everywhere and matched the whole canvas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9a65a50cc4
commit
4a034773aa
9 files changed
+46
-13
No files matched your search
+18
@@ -460,6 +460,24 @@ screen that unmounts the overlay flashes the live court through between menus. C
|
||||
only; `START GAME` and `BACK` are their own buttons. The tutorial is a data table (`TUT` in main.js)
|
||||
of Marvin poses, an optional picture already in `assets/`, and his lines — adding a page is a row.
|
||||
|
||||
**Menu and tutorial art is generated DIRECTLY, not through `_regen.py`.** That pipeline keys magenta
|
||||
and slices figures out of a sheet; these are whole illustrated panels with backgrounds, so they go
|
||||
through `generate_image.py` and a downscale/quantise pass, the same route the court tiles took. Two
|
||||
things learned making them:
|
||||
|
||||
- **Quantise these at 128 colours, not 64.** The panels are big flat fields with a few saturated
|
||||
accents (the ball, fire, blood), which is exactly where a small palette shows — 64 turned the
|
||||
tennis ball beige.
|
||||
- **Find a generated plate by its BRIGHT BORDER, never by the corner colour.** One button plate came
|
||||
back on a near-black margin and the other on a transparency CHECKERBOARD, which differs from
|
||||
itself everywhere and matched the entire canvas. The threshold has to adapt per image too: the
|
||||
checkerboard's own greys are brighter than the darker plate's border.
|
||||
|
||||
The button plates are blank on purpose — **the lettering stays Silkscreen on top of the art**.
|
||||
Generated type is a lottery and would not match the rest of the HUD. `btn_start` is a BOTTOM band of
|
||||
a taller plate: by there the drips have run out to the ends and the centre is clear enough to print
|
||||
over, and the plate's own bottom border comes with it.
|
||||
|
||||
**The menu theme starts on the FIRST TAP, never at boot** (`go()` calls `menuMusic`). A title screen
|
||||
that plays at you before you touch it is rude, and on a phone the autoplay policy would have held it
|
||||
silent until that tap regardless.
|
||||
|
||||
Reference in new issue
Block a user