Added simple collision testing

This commit is contained in:
Kyler Olsen 2024-11-15 10:18:22 -07:00
parent de165606cb
commit e3eb9119ad
1 changed files with 13 additions and 5 deletions

18
game.py
View File

@ -60,7 +60,7 @@ def draw_map(
ray_dir = player_dir.normalize() + (plane * camera) ray_dir = player_dir.normalize() + (plane * camera)
wall_dist, side = ray( 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) if side is None: color = pygame.Color(255,0,0)
elif side == 0: color = pygame.Color(255,255,0) elif side == 0: color = pygame.Color(255,255,0)
else: color = pygame.Color(0,255,255) else: color = pygame.Color(0,255,255)
@ -258,13 +258,21 @@ def game_loop():
keys = pygame.key.get_pressed() keys = pygame.key.get_pressed()
if keys[pygame.K_w]: 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]: 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]: 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]: 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]: if keys[pygame.K_q]:
player_dir.rotate_ip(-90 * dt) player_dir.rotate_ip(-90 * dt)
if keys[pygame.K_e]: if keys[pygame.K_e]: