Compare commits
No commits in common. "870d541d96da2215fb9d61dd32a42f5012f6efd4" and "cae802b3bfae7e0031d19254d8195f488d705f79" have entirely different histories.
870d541d96
...
cae802b3bf
|
|
@ -1,2 +1 @@
|
||||||
__pycache__
|
__pycache__
|
||||||
ref
|
|
||||||
|
|
|
||||||
10
README.md
10
README.md
|
|
@ -1,10 +0,0 @@
|
||||||
# Maze generators
|
|
||||||
|
|
||||||
Kyler Olsen
|
|
||||||
|
|
||||||
Both `visualize.py` and `game.py` require pygame to run:
|
|
||||||
|
|
||||||
```
|
|
||||||
pip install pygame-ce
|
|
||||||
```
|
|
||||||
|
|
||||||
72
game.py
72
game.py
|
|
@ -1,72 +0,0 @@
|
||||||
import pygame
|
|
||||||
import math
|
|
||||||
|
|
||||||
def draw_map(screen, player_pos, player_dir):
|
|
||||||
screen.fill(pygame.Color(64,64,64))
|
|
||||||
|
|
||||||
pygame.draw.rect(screen, "blue", pygame.Rect(player_pos-(2.5,2.5),(5,5)))
|
|
||||||
pygame.draw.line(screen, "blue", player_pos, player_pos+(player_dir))
|
|
||||||
|
|
||||||
def game_loop():
|
|
||||||
|
|
||||||
pygame.init()
|
|
||||||
pygame.display.set_caption("Maze Raycaster")
|
|
||||||
screen = pygame.display.set_mode((1280, 720))
|
|
||||||
|
|
||||||
top_view = pygame.Surface((screen.get_width() // 2, screen.get_height()))
|
|
||||||
game_view = pygame.Surface((screen.get_width() // 2, screen.get_height()))
|
|
||||||
|
|
||||||
myfont = pygame.font.SysFont("monospace", 15)
|
|
||||||
|
|
||||||
clock = pygame.time.Clock()
|
|
||||||
running = True
|
|
||||||
dt = 0
|
|
||||||
|
|
||||||
player_pos = pygame.Vector2(200, 200)
|
|
||||||
player_dir = pygame.Vector2(-100, 0)
|
|
||||||
|
|
||||||
while running:
|
|
||||||
for event in pygame.event.get():
|
|
||||||
if event.type == pygame.QUIT:
|
|
||||||
running = False
|
|
||||||
|
|
||||||
game_view.fill(pygame.Color(0,0,0))
|
|
||||||
|
|
||||||
draw_map(top_view, player_pos, player_dir)
|
|
||||||
|
|
||||||
keys = pygame.key.get_pressed()
|
|
||||||
if keys[pygame.K_w]:
|
|
||||||
player_pos += player_dir * dt
|
|
||||||
if keys[pygame.K_s]:
|
|
||||||
player_pos -= player_dir * dt
|
|
||||||
if keys[pygame.K_a]:
|
|
||||||
player_pos -= player_dir.rotate(90) * dt
|
|
||||||
if keys[pygame.K_d]:
|
|
||||||
player_pos += player_dir.rotate(90) * dt
|
|
||||||
if keys[pygame.K_q]:
|
|
||||||
player_dir.rotate_ip(-90 * dt)
|
|
||||||
if keys[pygame.K_e]:
|
|
||||||
player_dir.rotate_ip(90 * dt)
|
|
||||||
if keys[pygame.K_n]:
|
|
||||||
player_dir.scale_to_length(player_dir.length() / 1.01)
|
|
||||||
if keys[pygame.K_m]:
|
|
||||||
player_dir.scale_to_length(player_dir.length() * 1.01)
|
|
||||||
if keys[pygame.K_ESCAPE]:
|
|
||||||
running = False
|
|
||||||
|
|
||||||
screen.blit(top_view, (0,0))
|
|
||||||
screen.blit(game_view, (screen.get_width() // 2,0))
|
|
||||||
|
|
||||||
label = myfont.render(
|
|
||||||
f"Player: {player_pos} {player_dir} {round(player_dir.length())}",
|
|
||||||
True, (192,192,192)
|
|
||||||
)
|
|
||||||
screen.blit(label, (10, 10))
|
|
||||||
|
|
||||||
pygame.display.update()
|
|
||||||
|
|
||||||
dt = clock.tick(60) / 1000
|
|
||||||
|
|
||||||
pygame.quit()
|
|
||||||
|
|
||||||
game_loop()
|
|
||||||
Loading…
Reference in New Issue