diff --git a/iced-tetris/src/main.rs b/iced-tetris/src/main.rs index 237eabb..510060a 100644 --- a/iced-tetris/src/main.rs +++ b/iced-tetris/src/main.rs @@ -1,4 +1,4 @@ -use iced::widget::canvas::{self, Path, Stroke}; +use iced::widget::canvas::{self, Path, Stroke, Text}; use iced::{ executor, keyboard, time, Application, Color, Command, Element, Length, Point, Rectangle, Settings, Size, Subscription, @@ -66,7 +66,7 @@ impl Application for Tetris { }; if self.blocks.piece_currently_active() { - if self.ticks % 10 == 0 { + if self.ticks % 10 == 0 && !self.paused { self.blocks.move_active_piece(MoveDirection::SoftDrop); } } else { @@ -133,18 +133,41 @@ impl<'a> canvas::Program for Tetris { frame.fill(&block, fill_color); let stroke_color = Color::from_rgb8( - color.0.checked_sub(20).unwrap_or(0), - color.1.checked_sub(20).unwrap_or(0), - color.2.checked_sub(20).unwrap_or(0), + color.0.checked_sub(20).unwrap_or(0), + color.1.checked_sub(20).unwrap_or(0), + color.2.checked_sub(20).unwrap_or(0), ); let stroke = Stroke { - width: 3.0, - color: stroke_color, - ..Stroke::default() + width: 3.0, + color: stroke_color, + ..Stroke::default() }; frame.stroke(&block, stroke); } + let text_color = Color::from_rgb8(255, 30, 30); + let text_size = 32.0; + let score = Text { + content: format!("Lines removed: {}", self.lines_removed), + position: Point::new(10.0, 30.0), + color: text_color, + size: text_size, + ..Default::default() + }; + + frame.fill_text(score); + + if self.paused { + let paused = Text { + content: format!("PAUSED"), + position: Point::new(10.0, 60.0), + color: text_color, + size: text_size, + ..Default::default() + }; + frame.fill_text(paused); + } + vec![background, frame.into_geometry()] } }