From d54377e3d65f2abb5559a836cde39eafa83ecc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?b=CA=B0edoh=E2=82=82=20sw=C3=A9?= Date: Fri, 5 Apr 2024 01:46:39 +0500 Subject: [PATCH] Change rendering a bit. --- draw.py | 15 +++++++++------ main.py | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/draw.py b/draw.py index 7290441..399c788 100644 --- a/draw.py +++ b/draw.py @@ -4,8 +4,8 @@ from gyro import * from lines import * class DrawnSegment: - def __init__(self,height,color): - self.height = height + def __init__(self,dist,color): + self.dist = dist self.color = color def draw(level,gPlayer,fov,res): @@ -13,7 +13,7 @@ def draw(level,gPlayer,fov,res): irot = exp(fov/res*I) iprot = gPlayer.cRot for i in range(res): - m = DrawnSegment(0,BLACK) + m = None rot = irot**(i-(res/2)) * iprot for j in level: try: # Function "LineIntersection" faults from time to time @@ -25,8 +25,11 @@ def draw(level,gPlayer,fov,res): rDist = MobiusDist(cInt,gPlayer.cPos)*1.1 if j.isFinite and not cBetween(j.pointA,j.pointB,cInt): continue - if (1 - m.height) > rDist: - m = DrawnSegment(1-rDist,j.color) - drawn.append(m) + if m is None: + m = DrawnSegment(rDist,j.color) + continue + if m.dist > rDist: + m = DrawnSegment(rDist,j.color) + drawn.append(m if m is not None else DrawnSegment(0, BLACK)) return drawn diff --git a/main.py b/main.py index 02a5e4b..5dc7f37 100755 --- a/main.py +++ b/main.py @@ -90,7 +90,7 @@ def mainLoop(): pygame.draw.rect(display,GROUND, (0,360,1280,360)) n = 0 for i in drawn: - pygame.draw.rect(display,i.color, (n,int((1 - cap(i.height)) * 360),8,int(cap(i.height) * 1280))) + pygame.draw.rect(display,i.color, (n,int((cap(i.dist)) * 360),8,int(cap(1 - i.dist) * 1280))) n += 4 gPlayer.normalize() if debugInfo: