From e1010930b5e76112f2f804695ca4d9b4787711c8 Mon Sep 17 00:00:00 2001 From: n3tael Date: Thu, 4 Apr 2024 20:01:33 +0300 Subject: [PATCH] feat(walls): player can create walls by pressing F3 --- main.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index a3b5ef0..0c3edc5 100755 --- a/main.py +++ b/main.py @@ -2,7 +2,7 @@ try: from numpy import complex256 except ImportError: - from numpy import complex128 as complex256 + from numpy import complex128 as complex256 print("Warning! Cannot use full precision!") from time import time_ns, sleep @@ -88,12 +88,22 @@ def renderDebugInfo(gPlayer, clock, fontSize = 18): return fps_surf, cPos_surf, cRot_surf +def make_wall(wall_buffer): + if (len(wall_buffer) != 2): + print('Warning: wall buffer not contains 2 points.') + return + + level.append( + Segment(True, wall_buffer[0], wall_buffer[1], (23,74,183)) + ) + def mainLoop(): gPlayer = GyroVector(0,1) display = pygame.display.set_mode((1280,720)) clock = pygame.time.Clock() fontSize = 18 debugInfo = True + wall_buffer = [] while True: #framestart = time_ns() @@ -106,6 +116,14 @@ def mainLoop(): gPlayer.cRot *= -1 if event.key == pygame.K_F3: debugInfo = not debugInfo + if event.key == pygame.K_F2: + if (len(wall_buffer) == 1): + wall_buffer.append(gPlayer.cPos) + make_wall(wall_buffer) + wall_buffer.clear() + else: + wall_buffer.append(gPlayer.cPos) + keys = pygame.key.get_pressed() if keys[pygame.K_d]: gPlayer.rotate(ROT) @@ -118,7 +136,7 @@ def mainLoop(): display.fill(WHITE) #pygame.draw.rect(display,BLACK, c_tr(Poincare2Klein(gPlayer.cPos) * -100) + (100,100),0) - drawn = draw(level,gPlayer,PI/4,320) + drawn = draw(level,gPlayer,PI/2,320) pygame.draw.rect(display,SKY, (0,0,1280,360)) pygame.draw.rect(display,GROUND, (0,360,1280,360)) n = 0