diff --git a/Concepts.md b/Concepts.md index ea65dfa..dff1f7e 100644 --- a/Concepts.md +++ b/Concepts.md @@ -71,6 +71,24 @@ Fixed steps start on a whole screen pixel, so pixel art at 100% stays sharp. The pixel, and Fit then names the factor in screen pixels (`Fit · 156%`). The choice is saved with the project, like *Play starts*, but it is no undo step: Ctrl+Z undoes edits, not a look at the game. +**While playing** (#265). How closely the editor follows a running game is one preset in +*Menu → Project settings…*. The game itself runs every frame in each of them, and so does the +picture of it on screen; only the panels are held back. With hundreds of objects spawning and +dying, rebuilding the hierarchy for every one of them cost more than the game. + +| Preset | Hierarchy | Inspector and other values | Graph highlights | Scene view behind the Game tab | +|---|---|---|---|---| +| **Live** | every frame | every frame | every frame | keeps drawing | +| **Balanced** (default) | 4 times a second | 4 times a second | every frame | waits until its tab is shown | +| **Minimal** | on pause | on pause | 4 times a second | waits until its tab is shown | + +A change in between is kept, not lost: the next update carries it. Pausing (the toolbar, Ctrl+Enter +or a `Pause game` node) brings every panel up to date at once, and picking an object during a run +lists it in the hierarchy at once. The graph and state machine tabs only draw while they are on +screen, so Balanced lets them keep up with every frame. Under Minimal they are held back too, but a +pulse glows for 0.35 s, longer than the gap between two updates, so every pulse still shows. Balanced is also what a project written before there was a +choice plays with. The preset is saved with the project and is an undo step. + **Snapshots** (#231). *Menu → Snapshots…* lists the snapshots of the open project, newest first, with the local time each was made. **Create snapshot** copies the project as the server has it stored, under the name typed or, left blank, under the date and time; the autosave is written @@ -91,7 +109,8 @@ window, not of the space the row has left over — where play turns into a stop on, and pause into a second play sign while it is held. On the right stand the notice line, the save status, the frame rate and the **Account** menu. What the bar used to spell out lives in the menu now: the project list in *Open project…*, the project name, the -**start-scene switch** (*Start scene* / *Active scene*, see **Start scene**), the **symbol scale** +**start-scene switch** (*Start scene* / *Active scene*, see **Start scene**), the **While playing** +preset (see above), the **symbol scale** of the scene view's icons (see [Scene editing](Scene-editing)) and the collision layers in *Project settings…*. The active scene is picked where the scenes are — by double-clicking one in the **Assets** panel. The **Assets** panel's `+` creates an asset and opens its tab; its menu lists the types in diff --git a/Development.md b/Development.md index bab985d..aa157b3 100644 --- a/Development.md +++ b/Development.md @@ -15,7 +15,7 @@ npm run build # writes dist/ and regenerates index.html php tools/make-user.php [admin|user] # an account; every tool signs in (see Accounts) php tests/php/accounts.test.php # the API's account rules, no server needed (CI's gate job) php tests/php/snapshots.test.php # the snapshot store (#231), the same way -node tools/seed-e2e.mjs && node tools/e2e.mjs # 1551 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 1562 editor checks, screenshots in /tmp/gm-e2e-*.png GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step ./e2e.sh start [GM_STEPS] # the same run detached, see below ./e2e.sh status # live progress, or the last run's result diff --git a/Scene-editing.md b/Scene-editing.md index 6e43a39..6966cf0 100644 --- a/Scene-editing.md +++ b/Scene-editing.md @@ -198,6 +198,11 @@ group. There are no groups inside groups. part of a multi-selection moves all selected objects, side by side in their listed order and as one undo step; a selected child of a selected object travels with its parent. - **The group row's menu** has *Select members*, *Rename…* and *Ungroup* (the members stay). +- **Spawned objects are grouped by asset** (#265). An object a `Spawn` node places at the top level + goes into the group named after its asset, *Gold* for the gold pickups; a group of that name that + is already there is used, otherwise one is made. Two hundred pickups are then one folded row. A + spawned object with a parent stays under its parent. The name of the object does not change, so a + `Find` looks for it as before; only objects of the same group are drawn as one block at equal `z`. The object menu adds *Remove from group*. Grouping, renaming, ungrouping and moving in or out are one undo step each. - **Order:** a group is listed where its first member stands, with the others moved up behind it. diff --git a/Scenes.md b/Scenes.md index fe5fa30..314cdf4 100644 --- a/Scenes.md +++ b/Scenes.md @@ -25,7 +25,8 @@ Which of the two Play uses is the **Play starts** switch in **menu → Project s The switch is saved with the **project** (#226), so whoever opens it gets the same answer, and changing it is an undo step like every other project setting. It stands in the settings dialog -beside the project name, the symbol scale and the collision layers. +beside the project name, the *While playing* preset (see [Concepts](Concepts)), the symbol scale +and the collision layers. It is captioned with the mode it stands in — *Start scene* or *Active scene*, worded exactly like the entries of its own menu, so that what you picked and what you read back are the same words. The start scene is marked with the play triangle in the Assets panel, the active one with a dot.