Add wall without collision
This commit is contained in:
parent
57a442c5e2
commit
c7194cf2bc
32
src/game.rs
32
src/game.rs
@ -55,7 +55,7 @@ impl Room {
|
|||||||
impl GameModel {
|
impl GameModel {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self {
|
Self {
|
||||||
player_pos: P2::new(0, 0),
|
player_pos: P2::new(1, 1),
|
||||||
room: Room {
|
room: Room {
|
||||||
size: V2::new(20, 10),
|
size: V2::new(20, 10),
|
||||||
},
|
},
|
||||||
@ -87,7 +87,23 @@ impl GameModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn render_tiles(&self) -> Grid<Tile> {
|
fn render_tiles(&self) -> Grid<Tile> {
|
||||||
let mut tiles = Grid::from_fn(self.room.size.x, self.room.size.y, |_x, _y| Tile::Floor);
|
let w = self.room.size.x;
|
||||||
|
let h = self.room.size.y;
|
||||||
|
let mut tiles = Grid::from_fn(w, h, |x, y| {
|
||||||
|
let is_vertical_boundary = [0, w - 1].contains(&x);
|
||||||
|
let is_horizontal_boundary = [0, h - 1].contains(&y);
|
||||||
|
let is_corner = is_vertical_boundary && is_horizontal_boundary;
|
||||||
|
|
||||||
|
if is_corner {
|
||||||
|
Tile::Corner
|
||||||
|
} else if is_vertical_boundary {
|
||||||
|
Tile::VerticalWall
|
||||||
|
} else if is_horizontal_boundary {
|
||||||
|
Tile::HorizontalWall
|
||||||
|
} else {
|
||||||
|
Tile::Floor
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
tiles
|
tiles
|
||||||
.get_mut(P2::new(1, 1))
|
.get_mut(P2::new(1, 1))
|
||||||
@ -124,6 +140,9 @@ enum Tile {
|
|||||||
Amphora,
|
Amphora,
|
||||||
Frog,
|
Frog,
|
||||||
Water,
|
Water,
|
||||||
|
Corner,
|
||||||
|
VerticalWall,
|
||||||
|
HorizontalWall,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Tile {
|
impl Tile {
|
||||||
@ -150,6 +169,15 @@ impl Tile {
|
|||||||
.set_bg(Color::Blue)
|
.set_bg(Color::Blue)
|
||||||
.set_fg(Color::White);
|
.set_fg(Color::White);
|
||||||
}
|
}
|
||||||
|
Tile::Corner => {
|
||||||
|
cell.set_symbol("♦");
|
||||||
|
}
|
||||||
|
Tile::VerticalWall => {
|
||||||
|
cell.set_symbol("║");
|
||||||
|
},
|
||||||
|
Tile::HorizontalWall => {
|
||||||
|
cell.set_symbol("═");
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user