forked from tas/major_tom
Add spatial audio, spacecraft entity, and level intro sequence
Distance-based sound effects with stereo panning for explosions, impacts, and pickups. Spacecraft entity with full state machine (fly-in, land, take off, fly-out), engine/synth sound loops, thruster particles, and PNG spritesheet. Moon level intro defers player spawn until ship lands. Also untrack build/ objects that were committed by mistake.
This commit is contained in:
30
TODO.md
30
TODO.md
@@ -1,9 +1,15 @@
|
||||
# TODO
|
||||
|
||||
## Distance-based sound effects
|
||||
Sounds (explosions, impacts, etc.) should attenuate based on distance from the
|
||||
player. Offscreen events far away should be inaudible. Add a helper that takes
|
||||
a world position and scales volume by proximity to the camera/player.
|
||||
## ~~Distance-based sound effects~~ ✓
|
||||
Implemented: `audio_set_listener()`, `audio_play_sound_at()` with linear
|
||||
attenuation and stereo panning. Used by enemy death, asteroid impact, and
|
||||
powerup pickup.
|
||||
|
||||
## ~~Spacecraft art and entity~~ ✓
|
||||
Implemented: spacecraft PNG spritesheet (5 frames, 80x48 each), full entity
|
||||
with state machine (FLYING_IN → LANDING → LANDED → TAKEOFF → FLYING_OUT →
|
||||
DONE), engine/synth sounds, thruster particles, level intro sequence with
|
||||
deferred player spawn.
|
||||
|
||||
## Large map support (5000x5000)
|
||||
Audit the engine for anything that breaks or becomes slow at very large map
|
||||
@@ -15,18 +21,10 @@ sizes. Key areas to check:
|
||||
- Camera bounds and coordinate overflow (float precision at large coords)
|
||||
- Level file parsing (row lines could exceed fgets buffer at 5000+ columns)
|
||||
|
||||
## Spacecraft art and entity
|
||||
Create placeholder pixel art for the player's spacecraft (fits the 16x16 grid
|
||||
aesthetic but spans multiple cells, roughly 4-5 tiles wide by 2-3 tiles tall).
|
||||
Needs at minimum:
|
||||
- Landed/idle frame (visible near spawn on planet surface levels)
|
||||
- Landing animation (descending + touchdown, 3-4 frames)
|
||||
- Takeoff animation (liftoff + ascending, reuse landing in reverse)
|
||||
Used in two contexts:
|
||||
- **Level start**: ship flies in, lands at spawn, player exits, ship takes off
|
||||
and leaves — serves as the level intro sequence
|
||||
- **Level exit**: ship flies in and lands when player nears the exit zone,
|
||||
player enters, ship takes off — triggers level transition
|
||||
## Spacecraft at level exit
|
||||
Ship landing at exit zone when player approaches — player enters, ship takes
|
||||
off, triggers level transition. The intro/start sequence is done; this is the
|
||||
exit counterpart.
|
||||
|
||||
## Asteroid refinement
|
||||
- Reduce asteroid count significantly — occasional hazard, not a barrage
|
||||
|
||||
Reference in New Issue
Block a user