feat(controllers): #58 platformer — ludic.platformer package (base + extensible)
The reference six-lever controller: Platformer component (jump feel as data), decomposed input/move/gravity/jump/anim engine sub-systems (each disable-able), JumpRequested/Landed/StateChanged events, gravity policy enum, and the opt-in scaffolding (moving/crumble platforms w/ rider carry, pickups+score, springs, hazards+Life, checkpoints/goal). Reuses the shared esys_move collision. Also fixes a latent SSA-name collision in ludic_sweep_entity that triggered once a program declared >=11 events. Reseeded; C-free fixpoint holds. 3 new regression cases (100 passed, 0 failed). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
ed385efa7b
commit
dd5cb5817b
9 changed files with 892 additions and 3 deletions
14
packages/ludic.platformer/package.ludic
Normal file
14
packages/ludic.platformer/package.ludic
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# ludic.platformer — the builtin Platformer controller (#58).
|
||||
#
|
||||
# The reference implementation of the six-lever extensibility contract (#57):
|
||||
# movement feel as data, decomposed engine sub-systems (each `disable system`-able),
|
||||
# a cancellable/observable event at every jump decision, and a gravity policy enum.
|
||||
# Builds on the engine's Body/Collider + esys_move (swept-AABB tile collision) — it
|
||||
# owns movement *policy*, never re-implements collision. Deterministic (integer
|
||||
# Q16.16), so replay / lockstep / world_save all hold.
|
||||
package "ludic.platformer"
|
||||
version "0.1.0"
|
||||
kind source
|
||||
provides "Platformer"
|
||||
provides "Score"
|
||||
provides "Life"
|
||||
Loading…
Add table
Add a link
Reference in a new issue