|
|
- 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>
|