diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-05-07 10:31:42 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-05-07 10:31:42 +0200 |
| commit | b2ca89d8193d98aa21e9637257c3e7a7216b9bd8 (patch) | |
| tree | e87be16d5a92ad88070f3c96976174cab683f571 /spawn.go | |
| parent | 2e8da8cb6948664a77fa73cb0c66e0cc27419dc5 (diff) | |
Add viewport/camera system with pan, zoom, and world-space cursor conversion
- New camera.go: Camera struct with arrow-key pan, scroll-wheel zoom toward
cursor, middle-mouse drag, exponential velocity decay, and world-bounds clamping
- Layout() now returns screen dimensions (960x640) instead of world size so
the camera GeoM transform drives all rendering
- All world entities, halos, text, path lines and spawn target converted via
camera transform in draw.go; banners remain in screen space
- selection.go: separate startScreen field so the drag-select box draws in
screen space while selection logic stays in world space
- Banner heights and font sizes scaled down to fit the 640px logical screen
- Three new integration tests: ScreenToWorld round-trip, bounds clamping,
zoom-toward-cursor stability
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'spawn.go')
0 files changed, 0 insertions, 0 deletions
