Screens
Two screens, both owned by the **Screens** component (which the slice's module spawns on every scene load — a UI needs a persistent owner for its callbacks):
screens — everything the player reads
Two screens, both owned by the Screens component (which the slice's module spawns on every scene load — a UI needs a persistent owner for its callbacks):
| Screen | Shows |
|---|---|
mko_menu | The title, the CONTROLES window, and the circuit select. |
mko_hud | The lap/point counter, the millisecond timer, the item slot, the countdown, and the finish card. |
The flow
title --J--> controles --Comenzar/J--> select --a circuit--> countdown --> race --> finish
J advances (its own menu.inputMap), and every button is a real click
target: comenzar, pick_cheep, pick_mumu, pick_arcoiris, again.
Choosing a circuit calls Core.selectCircuit(id) + Core.beginRace(); the
tracks lay the circuit and the kart is placed on its line. The menu screen is
hidden and its scheme released while the race runs, and the HUD takes over.
The menu map deliberately does not suppress the driving scheme: the kart already ignores the wheel unless a race is on, so a menu that is up can never be a kart that cannot move.
Look
The palette of design/references/02-title-screen.png: a blue title bar, white
panels, chunky type, and an orange COMENZAR button, with the type over the
live world rather than over a flat colour.
API
local S = Core.system("screens")
S.show("title" | "controls" | "select")
S.view() -- which page is up
Scoped to this part · feeds back into the world's score.