From cb7779e8fc9e8a01ab895d2a8caf999d05f042e2 Mon Sep 17 00:00:00 2001 From: RedStone576 Date: Mon, 23 Mar 2026 22:09:53 +0700 Subject: [PATCH] movement --- src/main.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 1710545..2ad7d02 100644 --- a/src/main.rs +++ b/src/main.rs @@ -120,11 +120,21 @@ impl Game { preview: SideMatrix::new(4, 20), piece: Piece::new(20), drop_timer: 0.0, - drop_interval: 0.2, + drop_interval: 1.0, } } fn update(&mut self, dt: f32) { + if is_key_pressed(KeyCode::A) { + self.move_piece(-1, 0); + } + if is_key_pressed(KeyCode::D) { + self.move_piece(1, 0); + } + if is_key_pressed(KeyCode::S) { + self.drop_piece(); // sd + } + self.drop_timer += dt; if self.drop_timer >= self.drop_interval { @@ -149,6 +159,20 @@ impl Game { self.matrix.cells[self.piece.y as usize][self.piece.x as usize] = true; } } + + fn move_piece(&mut self, dx: i32, dy: i32) { + let next_x = self.piece.x + dx; + let next_y = self.piece.y + dy; + + if next_x >= 0 && next_x < self.matrix.width as i32 { + if next_y >= 0 && next_y < self.matrix.height as i32 { + if !self.matrix.cells[next_y as usize][next_x as usize] { + self.piece.x = next_x; + self.piece.y = next_y; + } + } + } + } } #[macroquad::main("tetrus")]