feat: initial implementation v0.1.0 — single player puppet + WASD + map
Composer module: single-player character as puppet (humanoid 4-bone rig: torso, head, leg_l, leg_r) at world (320, 240) on a 20x20 v0.1-format tilemap. - WASD direct movement, normalized for diagonals, 120 px/s. - Camera-chase via lib-core.camera target-provider (camera follows puppet position frame-to-frame). - Idle and walk keyframe animations: idle is a 2s torso-sway on the upper track; walk is a 0.6s leg-cycle on the lower track. - Animation-state transitions driven by movement input: walk while WASD-active, idle when released. - Headtrack: head bone (marked look_at: true in rig) rotates each frame to face the mouse cursor's world position via puppet.set_look_target. - ESC -> launcher. CI hooks (env-var-gated, no-op in normal play): - SPOREL_CI=1: emits 'vagrant: frame_avg_ms=N' after 60 frames and 'vagrant: render_frame_ok' per frame from the render hook, then engine.exit(0). Smoke stages consume these markers.
This commit is contained in:
15
manifest.module
Normal file
15
manifest.module
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"id": "vagrant-skeleton",
|
||||
"version": "0.1.0",
|
||||
"kind": "module",
|
||||
"api": "^0.1",
|
||||
"ci_frames": 60,
|
||||
"entry_point": "init.lua",
|
||||
"deps": [
|
||||
{"id": "lib-core.input", "version": "0.4.0"},
|
||||
{"id": "lib-core.camera", "version": "0.3.0"},
|
||||
{"id": "lib-core.render", "version": "0.1.0"},
|
||||
{"id": "lib-core.maps", "version": "0.1.1"},
|
||||
{"id": "lib-core.puppet", "version": "0.1.0"}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user