prettify marble direction and value rendering
This commit is contained in:
parent
23ac416c7e
commit
27ff77f133
9 changed files with 65 additions and 28 deletions
|
@ -7,6 +7,8 @@ use board::Board;
|
|||
use pos::*;
|
||||
use tile::*;
|
||||
|
||||
use crate::{draw_usize_small, Textures};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Machine {
|
||||
board: Board,
|
||||
|
@ -66,35 +68,27 @@ impl Machine {
|
|||
self.input = bytes;
|
||||
}
|
||||
|
||||
pub fn draw_marble_values(&self, d: &mut RaylibDrawHandle, offset: Vector2, zoom: i32) {
|
||||
pub fn draw_marble_values(
|
||||
&self,
|
||||
d: &mut RaylibDrawHandle,
|
||||
textures: &Textures,
|
||||
offset: Vector2,
|
||||
zoom: i32,
|
||||
) {
|
||||
let tile_size = 16 << zoom;
|
||||
for marble in &self.marbles {
|
||||
let x = marble.x;
|
||||
let y = marble.y;
|
||||
if let Some(tile) = self.board.get(*marble) {
|
||||
let px = x as i32 * tile_size + offset.x as i32 + tile_size / 2;
|
||||
let py = y as i32 * tile_size + offset.y as i32 + tile_size / 2;
|
||||
let px = x as i32 * tile_size + offset.x as i32;
|
||||
let py = y as i32 * tile_size + offset.y as i32;
|
||||
if let Tile::Marble { value, dir } = tile {
|
||||
let fontsize = (zoom + 1) * 10;
|
||||
d.draw_text(
|
||||
&format!("{value}"),
|
||||
px - tile_size / 2 + 2,
|
||||
py - tile_size / 2 + 2,
|
||||
fontsize,
|
||||
Color::MAGENTA,
|
||||
);
|
||||
d.draw_text(
|
||||
match dir {
|
||||
Direction::Up => "^",
|
||||
Direction::Down => "v",
|
||||
Direction::Left => "<",
|
||||
Direction::Right => ">",
|
||||
},
|
||||
px - tile_size / 2 + 2,
|
||||
py - tile_size / 2 + fontsize,
|
||||
fontsize,
|
||||
Color::MAGENTA,
|
||||
);
|
||||
let scale = 1 << zoom;
|
||||
let texture = textures.get(dir.arrow_texture_name());
|
||||
let pos = Vector2::new(px as f32, py as f32);
|
||||
let faded = Color::new(255, 255, 255, 100);
|
||||
d.draw_texture_ex(texture, pos, 0., scale as f32, faded);
|
||||
draw_usize_small(d, textures, value as usize, px, py, scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -111,6 +105,10 @@ impl Machine {
|
|||
}
|
||||
}
|
||||
|
||||
if self.marbles.is_empty() {
|
||||
return;
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
enum Event {
|
||||
Stay,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue