From e3eb9119ad6ecbdea1b6f1a7fcdf5abce95fdea3 Mon Sep 17 00:00:00 2001 From: Kyler Olsen Date: Fri, 15 Nov 2024 10:18:22 -0700 Subject: [PATCH] Added simple collision testing --- game.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/game.py b/game.py index a6e764f..bbfe2d5 100644 --- a/game.py +++ b/game.py @@ -60,7 +60,7 @@ def draw_map( ray_dir = player_dir.normalize() + (plane * camera) wall_dist, side = ray( - player_pos, ray_dir, world_map, max_dis*max_dis, debug=True) + player_pos, ray_dir, world_map, max_dis*max_dis)#, debug=True) if side is None: color = pygame.Color(255,0,0) elif side == 0: color = pygame.Color(255,255,0) else: color = pygame.Color(0,255,255) @@ -258,13 +258,21 @@ def game_loop(): keys = pygame.key.get_pressed() if keys[pygame.K_w]: - player_pos += player_dir * dt + new_pos = player_pos + (player_dir * dt) + if not world_map[int(new_pos[0]),int(new_pos[1])]: + player_pos = new_pos if keys[pygame.K_s]: - player_pos -= player_dir * dt + new_pos = player_pos - (player_dir * dt) + if not world_map[int(new_pos[0]),int(new_pos[1])]: + player_pos = new_pos if keys[pygame.K_a]: - player_pos -= player_dir.rotate(90) * dt + new_pos = player_pos - (player_dir.rotate(90) * dt) + if not world_map[int(new_pos[0]),int(new_pos[1])]: + player_pos = new_pos if keys[pygame.K_d]: - player_pos += player_dir.rotate(90) * dt + new_pos = player_pos + (player_dir.rotate(90) * dt) + if not world_map[int(new_pos[0]),int(new_pos[1])]: + player_pos = new_pos if keys[pygame.K_q]: player_dir.rotate_ip(-90 * dt) if keys[pygame.K_e]: