Draw floors and ceilings

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-08-30 15:10:56 +02:00
parent 7ab8a867fc
commit 7402f9da3c
+45
View File
@@ -397,13 +397,58 @@ void drawRays3D()
}
}
// * Draw ceiling
void drawCeiling()
{
float halfHeight = (float)(gameHeight / 2);
glBegin(GL_QUADS);
for (float distance = 0; distance < halfHeight; distance += 1.0f)
{
// Normalize color from 0.0 to 1.0 based on distance, multiplied by relative intensity
float colorIntensity = 0.5f + (distance / halfHeight);
glColor3f(0.25 * colorIntensity, 0.25 * colorIntensity, 0.25 * colorIntensity);
// Draw a horizontal strip at the current distance
glVertex2f(MAP_WIDTH + GAP, distance);
glVertex2f(MAP_WIDTH + GAP, distance + 1.0f);
glVertex2f(TOTAL_WIDTH, distance + 1.0f);
glVertex2f(TOTAL_WIDTH, distance);
}
glEnd();
}
// * Draw floor
void drawFloor()
{
float halfHeight = (float)(gameHeight / 2);
glBegin(GL_QUADS);
for (float distance = 0; distance < halfHeight; distance += 1.0f)
{
float colorIntensity = 0.5f + (distance / halfHeight);
glColor3f(0.25 * colorIntensity, 0.25 * colorIntensity, 0.0f);
float y = halfHeight + distance;
glVertex2f(MAP_WIDTH + GAP, y);
glVertex2f(MAP_WIDTH + GAP, y + 1.0f);
glVertex2f(TOTAL_WIDTH, y + 1.0f);
glVertex2f(TOTAL_WIDTH, y);
}
glEnd();
}
// * Main rendering
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
drawCeiling();
drawFloor();
drawMap2D();
drawRays3D();
drawPlayer();
glutSwapBuffers();
}