v0.3: Large world 4096x3072 + momentum waves + zoom-scaled lighting
- World expanded to 4096x3072 (16x area, tiled 4x4 copies) - Active region margin increased to 200px - Liquid momentum system (FLAG_MOMENTUM) for wave sloshing - Zoom-at-cursor support (camera.zoomAt) - Smoother zoom steps (0.2 per scroll tick) - Light propagation scaled by zoom (passes & falloff) - AGENTS.md updated with all current features
This commit is contained in:
+80
-13
@@ -8,26 +8,93 @@ use physics::Physics;
|
||||
use render_buffer::RenderBuffer;
|
||||
|
||||
fn main() {
|
||||
let width = 1024u32;
|
||||
let height = 768u32;
|
||||
let width = 4096u32;
|
||||
let height = 3072u32;
|
||||
let rw = 320u32;
|
||||
let rh = 180u32;
|
||||
let mut grid = Grid::new(width, height);
|
||||
let mut physics = Physics::new();
|
||||
let mut rb = RenderBuffer::new(rw, rh);
|
||||
|
||||
grid.fill_rect(440, 720, 144, 48, 1);
|
||||
grid.fill_rect(460, 700, 104, 20, 2);
|
||||
grid.fill_rect(470, 600, 84, 12, 5);
|
||||
grid.fill_circle(490, 560, 20, 3);
|
||||
grid.fill_rect(430, 650, 50, 30, 4);
|
||||
grid.fill_rect(540, 650, 50, 30, 6);
|
||||
grid.fill_rect(500, 640, 10, 18, 11);
|
||||
grid.fill_rect(480, 630, 64, 24, 5);
|
||||
grid.fill_rect(480, 618, 64, 12, 9);
|
||||
for ty in 0..4 {
|
||||
for tx in 0..4 {
|
||||
let ox = tx * 1024;
|
||||
let oy = ty * 768;
|
||||
grid.fill_rect(ox, oy + 740, 1024, 28, 1);
|
||||
grid.fill_rect(ox + 20, oy + 680, 80, 60, 1);
|
||||
grid.fill_rect(ox + 30, oy + 640, 60, 40, 1);
|
||||
grid.fill_rect(ox + 40, oy + 610, 40, 30, 1);
|
||||
grid.fill_circle(ox + 60, oy + 600, 15, 2);
|
||||
grid.fill_rect(ox + 50, oy + 660, 20, 20, 2);
|
||||
grid.fill_rect(ox, oy + 720, 120, 20, 1);
|
||||
grid.fill_rect(ox + 85, oy + 705, 35, 15, 1);
|
||||
grid.fill_rect(ox + 5, oy + 705, 60, 15, 1);
|
||||
grid.fill_circle(ox + 60, oy + 712, 12, 6);
|
||||
grid.fill_circle(ox + 70, oy + 708, 6, 6);
|
||||
grid.fill_rect(ox + 60, oy + 695, 20, 10, 2);
|
||||
grid.fill_rect(ox + 350, oy + 680, 100, 60, 1);
|
||||
grid.fill_rect(ox + 365, oy + 640, 70, 40, 1);
|
||||
grid.fill_rect(ox + 380, oy + 610, 40, 30, 1);
|
||||
grid.fill_rect(ox + 390, oy + 660, 20, 20, 10);
|
||||
grid.fill_rect(ox + 370, oy + 700, 60, 40, 5);
|
||||
grid.fill_circle(ox + 400, oy + 690, 8, 9);
|
||||
grid.fill_rect(ox + 395, oy + 675, 10, 5, 9);
|
||||
grid.fill_rect(ox + 750, oy + 640, 50, 100, 1);
|
||||
grid.fill_rect(ox + 760, oy + 610, 30, 30, 1);
|
||||
grid.fill_rect(ox + 770, oy + 590, 10, 20, 1);
|
||||
grid.fill_circle(ox + 775, oy + 580, 8, 9);
|
||||
grid.fill_rect(ox + 760, oy + 650, 30, 40, 5);
|
||||
grid.fill_rect(ox + 180, oy + 420, 100, 20, 1);
|
||||
grid.fill_rect(ox + 190, oy + 400, 80, 20, 2);
|
||||
grid.fill_circle(ox + 230, oy + 390, 15, 3);
|
||||
grid.fill_rect(ox + 200, oy + 380, 30, 20, 5);
|
||||
grid.fill_circle(ox + 215, oy + 385, 6, 9);
|
||||
grid.fill_rect(ox + 240, oy + 410, 10, 10, 10);
|
||||
grid.fill_rect(ox + 620, oy + 350, 80, 18, 1);
|
||||
grid.fill_rect(ox + 630, oy + 335, 60, 15, 2);
|
||||
grid.fill_circle(ox + 660, oy + 325, 12, 3);
|
||||
grid.fill_circle(ox + 640, oy + 340, 8, 11);
|
||||
grid.fill_rect(ox, oy + 700, 100, 40, 4);
|
||||
grid.fill_rect(ox + 10, oy + 680, 80, 20, 4);
|
||||
grid.fill_rect(ox + 20, oy + 660, 60, 20, 4);
|
||||
grid.fill_rect(ox + 880, oy + 700, 80, 40, 6);
|
||||
grid.fill_rect(ox + 890, oy + 680, 60, 20, 6);
|
||||
grid.fill_rect(ox + 900, oy + 660, 40, 20, 6);
|
||||
grid.fill_circle(ox + 420, oy + 280, 30, 11);
|
||||
grid.fill_circle(ox + 450, oy + 270, 20, 11);
|
||||
grid.fill_circle(ox + 390, oy + 290, 18, 11);
|
||||
grid.fill_rect(ox + 420, oy + 300, 20, 15, 11);
|
||||
grid.fill_rect(ox + 100, oy + 720, 180, 20, 3);
|
||||
grid.fill_circle(ox + 120, oy + 710, 25, 3);
|
||||
grid.fill_circle(ox + 180, oy + 708, 30, 3);
|
||||
grid.fill_circle(ox + 160, oy + 700, 18, 3);
|
||||
grid.fill_circle(ox + 220, oy + 715, 20, 3);
|
||||
grid.fill_circle(ox + 850, oy + 580, 22, 12);
|
||||
grid.fill_circle(ox + 870, oy + 590, 14, 12);
|
||||
grid.fill_rect(ox + 840, oy + 600, 40, 20, 12);
|
||||
grid.fill_rect(ox + 470, oy + 660, 280, 10, 5);
|
||||
grid.fill_rect(ox + 490, oy + 650, 40, 10, 5);
|
||||
grid.fill_rect(ox + 710, oy + 650, 40, 10, 5);
|
||||
grid.fill_rect(ox + 520, oy + 720, 180, 20, 1);
|
||||
grid.fill_rect(ox + 540, oy + 710, 140, 10, 1);
|
||||
grid.fill_circle(ox + 600, oy + 718, 15, 6);
|
||||
grid.fill_circle(ox + 620, oy + 716, 10, 6);
|
||||
grid.fill_rect(ox + 100, oy + 730, 40, 10, 13);
|
||||
grid.fill_circle(ox + 120, oy + 732, 8, 13);
|
||||
grid.fill_rect(ox + 280, oy + 640, 40, 40, 10);
|
||||
grid.fill_rect(ox + 290, oy + 650, 20, 30, 1);
|
||||
grid.fill_circle(ox + 300, oy + 670, 5, 9);
|
||||
grid.fill_circle(ox + 550, oy + 520, 20, 2);
|
||||
grid.fill_circle(ox + 570, oy + 530, 14, 2);
|
||||
grid.fill_circle(ox + 200, oy + 520, 30, 1);
|
||||
grid.fill_circle(ox + 220, oy + 500, 20, 1);
|
||||
grid.fill_rect(ox + 300, oy + 580, 12, 20, 4);
|
||||
grid.fill_rect(ox + 700, oy + 500, 10, 30, 4);
|
||||
}
|
||||
}
|
||||
|
||||
let cam_x = 512i32;
|
||||
let cam_y = 600i32;
|
||||
let cam_x = 400i32;
|
||||
let cam_y = 630i32;
|
||||
let zoom = 2.0f32;
|
||||
|
||||
let mut frame = 0;
|
||||
|
||||
Reference in New Issue
Block a user