From 207278206dd7e1b9fb936d65ff984eff7469741d Mon Sep 17 00:00:00 2001 From: "Daniele Verducci (Slimpenguin)" Date: Sat, 14 Jan 2023 16:20:34 +0100 Subject: [PATCH] Aligned to github version --- v3/assets/texture_temple.png | Bin 0 -> 24902 bytes {assets => v3/assets}/texture_wall_brick.png | Bin .../texture_wall_brick_door_center.png | Bin .../assets}/texture_wall_brick_door_left.png | Bin .../assets}/texture_wall_brick_door_right.png | Bin v3/assets/texture_wall_brick_flag.png | Bin 0 -> 23426 bytes v3/raycaster.py | 61 +++++++++++------- 7 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 v3/assets/texture_temple.png rename {assets => v3/assets}/texture_wall_brick.png (100%) rename {assets => v3/assets}/texture_wall_brick_door_center.png (100%) rename {assets => v3/assets}/texture_wall_brick_door_left.png (100%) rename {assets => v3/assets}/texture_wall_brick_door_right.png (100%) create mode 100644 v3/assets/texture_wall_brick_flag.png diff --git a/v3/assets/texture_temple.png b/v3/assets/texture_temple.png new file mode 100644 index 0000000000000000000000000000000000000000..eb60c063fb841fed693bfac1c319a36ffdaad2a9 GIT binary patch literal 24902 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 t&62>%tlGYIb?@xtB+% literal 0 HcmV?d00001 diff --git a/assets/texture_wall_brick.png b/v3/assets/texture_wall_brick.png similarity index 100% rename from assets/texture_wall_brick.png rename to v3/assets/texture_wall_brick.png diff --git a/assets/texture_wall_brick_door_center.png b/v3/assets/texture_wall_brick_door_center.png similarity index 100% rename from assets/texture_wall_brick_door_center.png rename to v3/assets/texture_wall_brick_door_center.png diff --git a/assets/texture_wall_brick_door_left.png b/v3/assets/texture_wall_brick_door_left.png similarity index 100% rename from assets/texture_wall_brick_door_left.png rename to v3/assets/texture_wall_brick_door_left.png diff --git a/assets/texture_wall_brick_door_right.png b/v3/assets/texture_wall_brick_door_right.png similarity index 100% rename from assets/texture_wall_brick_door_right.png rename to v3/assets/texture_wall_brick_door_right.png diff --git a/v3/assets/texture_wall_brick_flag.png b/v3/assets/texture_wall_brick_flag.png new file mode 100644 index 0000000000000000000000000000000000000000..c727197afcd8775ae34fb0f5b548e3b362726801 GIT binary patch literal 23426 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. + +# REQUIREMENTS: # pip install pysdl2 pysdl2-dll pypng import sys @@ -23,10 +38,12 @@ MAP_DOOR_CELL_TYPE = 3 # Textures cfg # Index is shifted by 1 relative to map, because 0 is no wall TEXTURES = [ - "../assets/texture_wall_brick.png", # = map index 1 - "../assets/texture_wall_brick_door_left.png", # = map index 2 - "../assets/texture_wall_brick_door_center.png", # = map index 3 - "../assets/texture_wall_brick_door_right.png", # = map index 4 + "assets/texture_wall_brick.png", # = map index 1 + "assets/texture_wall_brick_door_left.png", # = map index 2 + "assets/texture_wall_brick_door_center.png", # = map index 3 + "assets/texture_wall_brick_door_right.png", # = map index 4 + "assets/texture_wall_brick_flag.png", # = map index 5 + "assets/texture_temple.png", # = map index 6 ] TEXTURE_SIZE = 64 @@ -46,21 +63,21 @@ PLAYER_SPAWN_POSITION = {"x": 1.5, "y": 1.5, "r": 1.7} # r is rotation in radian # Dungeon data MAP = [ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 2, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 2, 1, 1, 5, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 0, 0, 0, 4, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, @@ -75,7 +92,7 @@ MAP = [ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ]