From ea5041d85a4c9af99d8abd75a081db062804d8f8 Mon Sep 17 00:00:00 2001 From: Peter Hart Date: Sun, 15 Mar 2020 16:55:45 -0400 Subject: [PATCH] no longer walking through walls --- src/main.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 3ad4c8f..4ecfae1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -95,10 +95,15 @@ struct Player {} fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) { let mut positions = ecs.write_storage::(); let mut players = ecs.write_storage::(); + let map = ecs.fetch::>(); for (_player, pos) in (&mut players, &mut positions).join() { - pos.x = min(79 , max(0, pos.x + delta_x)); - pos.y = min(49, max(0, pos.y + delta_y)); + let x = min(79 , max(0, pos.x + delta_x)); + let y = min(49, max(0, pos.y + delta_y)); + if map[xy_idx(x,y)] != TileType::Wall { + pos.x = x; + pos.y = y; + } } }