From 6b4942c6a7f17111128005c587ba33ab31dfe8dd Mon Sep 17 00:00:00 2001
From: Daniele Verducci <daniele.verducci@ichibi.eu>
Date: Sun, 15 Jan 2023 09:47:31 +0100
Subject: [PATCH] Road

---
 racing-sim.py | 45 ++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 40 insertions(+), 5 deletions(-)

diff --git a/racing-sim.py b/racing-sim.py
index a659d9b..f5e50ee 100755
--- a/racing-sim.py
+++ b/racing-sim.py
@@ -24,10 +24,17 @@ import sdl2.ext
 import math
 import time
 
-WIN_WIDTH = 640
-WIN_HEIGHT = 480
-SKY_COLOR = [0,128,255]
-FLOOR_COLOR = [64,64,64]
+RENDER_WIDTH = 128
+RENDER_HEIGHT = 96
+RENDER_SCALE = 8
+WIN_WIDTH = RENDER_WIDTH * RENDER_SCALE
+WIN_HEIGHT = RENDER_HEIGHT * RENDER_SCALE
+
+SKY_COLOR = [0,127,255]
+GRASS_COLOR = [0,127,0]
+KERB_COLOR = [255,0,0]
+ROAD_COLOR = [127,127,127]
+KERB_WIDTH = 0.05
 
 class Main:
 
@@ -85,12 +92,40 @@ class Main:
 		sdl2.SDL_SetRenderDrawColor(self.renderer, SKY_COLOR[0], SKY_COLOR[1], SKY_COLOR[2], sdl2.SDL_ALPHA_OPAQUE)
 		sdl2.SDL_RenderClear(self.renderer)
 		# Floor
-		sdl2.SDL_SetRenderDrawColor(self.renderer, FLOOR_COLOR[0], FLOOR_COLOR[1], FLOOR_COLOR[2], sdl2.SDL_ALPHA_OPAQUE)
+		sdl2.SDL_SetRenderDrawColor(self.renderer, ROAD_COLOR[0], ROAD_COLOR[1], ROAD_COLOR[2], sdl2.SDL_ALPHA_OPAQUE)
 		sdl2.SDL_RenderFillRect(self.renderer, sdl2.SDL_Rect(0, int(WIN_HEIGHT/2), WIN_WIDTH, int(WIN_HEIGHT)))
 
+		# Draw road
+		for y in range(int(RENDER_HEIGHT/2), RENDER_HEIGHT):
+			roadWidth = 0.6
+			roadWidthPixels = roadWidth * RENDER_WIDTH
+			roadCenterPixels = (RENDER_WIDTH - roadWidth) / 2
+			kerbWidth = KERB_WIDTH * RENDER_WIDTH
+
+			sdl2.SDL_SetRenderDrawColor(self.renderer, KERB_COLOR[0], KERB_COLOR[1], KERB_COLOR[2], sdl2.SDL_ALPHA_OPAQUE)
+			# Left Kerb
+			x = roadCenterPixels - roadWidthPixels / 2 - kerbWidth
+			self.drawScaledHLine(x, y, kerbWidth)
+			# Right Kerb
+			x = roadCenterPixels + roadWidthPixels / 2
+			self.drawScaledHLine(x, y, kerbWidth)
+
+			sdl2.SDL_SetRenderDrawColor(self.renderer, GRASS_COLOR[0], GRASS_COLOR[1], GRASS_COLOR[2], sdl2.SDL_ALPHA_OPAQUE)
+			# Left Grass
+			xEnd = roadCenterPixels - roadWidthPixels / 2 - kerbWidth
+			self.drawScaledHLine(0, y, xEnd) # xEnd = length, because xStart = 0
+			# Right Grass
+			x = roadCenterPixels + roadWidthPixels / 2 + kerbWidth
+			length = RENDER_WIDTH - x
+			self.drawScaledHLine(x, y, length)
+
 	def drawCar(self):
 		return
 
+	def drawScaledHLine(self, x, y, length):
+		sdl2.SDL_RenderFillRectF(self.renderer, sdl2.SDL_FRect(x * RENDER_SCALE, y * RENDER_SCALE, length * RENDER_SCALE, RENDER_SCALE))
+
+
 
 if __name__ == '__main__':
 	try: