Files
Sprimo/issues/issue6.md
2026-02-14 22:15:58 +08:00

1.5 KiB

Title

Adopt row-based 7x8 sprite animation semantics with backward-compatible state aliases.

Severity

P2

Summary

Standardize sprite.png packs so each of the 7 rows maps to semantic animation groups, while keeping runtime compatibility with existing state names (active, success, error).

Scope

  • assets/sprite-packs/{default,ferris,demogorgon}/manifest.json
  • crates/sprimo-runtime-core/src/lib.rs
  • crates/sprimo-app/src/main.rs
  • docs:
    • docs/SPRITE_PACK_SCHEMA.md
    • docs/TAURI_FRONTEND_DESIGN.md

Row Mapping Contract

  • row 1 (0..7): idle
  • row 2 (8..15): happy, love, alias active
  • row 3 (16..23): excited, celebrate, alias success
  • row 4 (24..31): sleepy, snoring
  • row 5 (32..39): working
  • row 6 (40..47): angry, surprised, shy, alias error
  • row 7 (48..55): dragging

One-shot defaults:

  • celebrate and success: one-shot
  • all others: loop

Implementation Notes

  1. Runtime state mapping updated:
  • Dragging now maps to "dragging" instead of "idle" in runtime-core and Bevy frontend.
  1. All bundled sprite-pack manifests now expose row-based names and compatibility aliases.
  2. Added runtime-core unit test to confirm SetState::Dragging selects "dragging".
  3. Updated schema/design docs to formalize the row convention.

Verification

Commands Run

  • cargo test -p sprimo-runtime-core
  • cargo check -p sprimo-tauri
  • cargo check -p sprimo-app

Result

  • Status: Fix Implemented
  • Notes: packaged runtime visual verification pending.