diff --git a/src/game.rs b/src/game.rs index 8d63d26..4aedf35 100644 --- a/src/game.rs +++ b/src/game.rs @@ -295,26 +295,26 @@ impl Game { self.squares = rects; - let btn_height = 0.1 * self.window_height; - let btn_y = board_width + board_y + 0.15 * self.square_width; - let btn_w = board_width * 0.25; + let btn_h = 0.08 * self.window_height; + let btn_w = board_width * 0.2; - // The button will be centered between 2 squares + let btn_y = board_width + board_y + 0.3 * self.square_width; let btn_x_offset = 0.5 * (board_width / 2. - btn_w); let reset_btn = Button::new( "Reset", board_x + btn_x_offset, btn_y, btn_w, - btn_height, + btn_h, ButtonAction::Reset, ); + let mut next_btn = Button::new( "Next", board_x + (0.5 * board_width) + btn_x_offset, btn_y, btn_w, - btn_height, + btn_h, ButtonAction::Next, ); diff --git a/src/game/button.rs b/src/game/button.rs index e732b3c..e7c72c0 100644 --- a/src/game/button.rs +++ b/src/game/button.rs @@ -27,16 +27,55 @@ impl Button { } pub fn draw(&self) { + self.draw_button(); + self.draw_label(); + } + + fn draw_button(&self) { let bg_color = Color::from_rgba(190, 190, 190, 255); draw_rectangle(self.rect.x, self.rect.y, self.rect.w, self.rect.h, bg_color); + let color = Color::from_rgba(0, 0, 0, 100); + let width = 5.0; + draw_rectangle( + self.rect.x + self.rect.w, + self.rect.y + width, + width, + self.rect.h, + color, + ); + + draw_rectangle( + self.rect.x + width, + self.rect.y + self.rect.h, + self.rect.w - width, + width, + color, + ); + + draw_triangle( + vec2(self.rect.x + self.rect.w, self.rect.y), + vec2(self.rect.x + self.rect.w + width, self.rect.y + width), + vec2(self.rect.x + self.rect.w, self.rect.y + width), + color, + ); + + draw_triangle( + vec2(self.rect.x, self.rect.y + self.rect.h), + vec2(self.rect.x + width, self.rect.y + self.rect.h + width), + vec2(self.rect.x + width, self.rect.y + self.rect.h), + color, + ); + } + + fn draw_label(&self) { let font_color = if self.is_active { Color::from_rgba(0, 0, 0, 255) } else { Color::from_rgba(100, 0, 0, 255) }; - let font_size = (0.6 * self.rect.h) as u16; + let font_size = (0.5 * self.rect.h) as u16; let dims = measure_text(&self.text, None, font_size, 1.0); draw_text( &self.text,