Add shadows to buttons
This commit is contained in:
parent
dc4ae27074
commit
8b71bce89c
12
src/game.rs
12
src/game.rs
@ -295,26 +295,26 @@ impl Game {
|
|||||||
|
|
||||||
self.squares = rects;
|
self.squares = rects;
|
||||||
|
|
||||||
let btn_height = 0.1 * self.window_height;
|
let btn_h = 0.08 * self.window_height;
|
||||||
let btn_y = board_width + board_y + 0.15 * self.square_width;
|
let btn_w = board_width * 0.2;
|
||||||
let btn_w = board_width * 0.25;
|
|
||||||
|
|
||||||
// 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 btn_x_offset = 0.5 * (board_width / 2. - btn_w);
|
||||||
let reset_btn = Button::new(
|
let reset_btn = Button::new(
|
||||||
"Reset",
|
"Reset",
|
||||||
board_x + btn_x_offset,
|
board_x + btn_x_offset,
|
||||||
btn_y,
|
btn_y,
|
||||||
btn_w,
|
btn_w,
|
||||||
btn_height,
|
btn_h,
|
||||||
ButtonAction::Reset,
|
ButtonAction::Reset,
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut next_btn = Button::new(
|
let mut next_btn = Button::new(
|
||||||
"Next",
|
"Next",
|
||||||
board_x + (0.5 * board_width) + btn_x_offset,
|
board_x + (0.5 * board_width) + btn_x_offset,
|
||||||
btn_y,
|
btn_y,
|
||||||
btn_w,
|
btn_w,
|
||||||
btn_height,
|
btn_h,
|
||||||
ButtonAction::Next,
|
ButtonAction::Next,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -27,16 +27,55 @@ impl Button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn draw(&self) {
|
pub fn draw(&self) {
|
||||||
|
self.draw_button();
|
||||||
|
self.draw_label();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn draw_button(&self) {
|
||||||
let bg_color = Color::from_rgba(190, 190, 190, 255);
|
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);
|
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 {
|
let font_color = if self.is_active {
|
||||||
Color::from_rgba(0, 0, 0, 255)
|
Color::from_rgba(0, 0, 0, 255)
|
||||||
} else {
|
} else {
|
||||||
Color::from_rgba(100, 0, 0, 255)
|
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);
|
let dims = measure_text(&self.text, None, font_size, 1.0);
|
||||||
draw_text(
|
draw_text(
|
||||||
&self.text,
|
&self.text,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user