Change rendering a bit.

This commit is contained in:
bʰedoh₂ swé 2024-04-05 01:46:39 +05:00
parent 53ecde3e0c
commit d54377e3d6
2 changed files with 10 additions and 7 deletions

15
draw.py
View File

@ -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

View File

@ -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: