I'm trying to draw a line on a surface that I then blit on the display. When I'm doing so, only the surface appeares while the line is not drawned.
The code I wrote is
import pygame as pg
import numpy as np
pg.init()
# Define constants for the screen width and height
SCREEN_WIDTH = 750
SCREEN_HEIGHT = 500
# Create the screen object
screen = pg.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
screen.fill((40,158,80))
running = True
while running:
for event in pg.event.get():
if event.type == pg.QUIT:
running = False
# Road surface
road_height = 100
road = pg.Surface((SCREEN_WIDTH+10,road_height))
road.fill((0,0,0))
road_topleft = [0,(SCREEN_HEIGHT-road_height)/2]
# Side lines
st_ratio = 0.0375 # side to total road width ratio
sl_width = int(np.rint(st_ratio*road_height))
sideline_topleft = road_topleft+[0,st_ratio*SCREEN_HEIGHT]
pg.draw.line(road, (255,255,255),[0, (SCREEN_HEIGHT-road_height)/2+st_ratio*road_height], \
[SCREEN_WIDTH, (SCREEN_HEIGHT-road_height)/2+st_ratio*road_height], sl_width)
screen.blit(road, road_topleft)
pg.display.flip()
pg.quit()
The idea is to design a road and I'm currently trying to add the lines to the "road" surface. The output I'm obtaining is however