Some more logic

This commit is contained in:
Greg Shuflin 2021-09-21 00:12:52 -07:00
parent fac481c0a5
commit 2978a661d5

View File

@ -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<Message> 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()]
}
}