From 4fe38e3afc179a1e2c120038b5abf9f8ad282f5c Mon Sep 17 00:00:00 2001 From: Pawel Felcyn Date: Mon, 3 Apr 2023 19:26:56 +0200 Subject: [PATCH] render exapmple street --- gameContext.py | 10 ++-------- main.py | 2 +- startup.py | 30 ++++++++++++++++++++++++++++++ street.py | 8 ++++---- 4 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 startup.py diff --git a/gameContext.py b/gameContext.py index 3abfaf9..d749c04 100644 --- a/gameContext.py +++ b/gameContext.py @@ -1,4 +1,4 @@ -from typing import Tuple +from typing import Tuple, List import pygame from PIL import Image @@ -10,6 +10,7 @@ class GameContext: dust_car_pil = None canvas = None _cell_size: int = 30 + city = None def render_in_cell(self, cell: Tuple[int, int], img_path: str): img = Image.open(img_path) @@ -18,11 +19,4 @@ class GameContext: start_y = (cell[1] - 1) * self._cell_size self.canvas.blit(pygame_img, (start_x, start_y)) -def startup(game_context: GameContext): - render_background(game_context) - game_context.canvas.blit(game_context.dust_car_pygame, (game_context.dust_car_position_x, game_context.dust_car_position_y)) -def render_background(game_context: GameContext): - bg_img = Image.open("imgs/background.jpg") - pygame_bg_image = pygame.image.frombuffer(bg_img.tobytes(), bg_img.size, 'RGB') - game_context.canvas.blit(pygame_bg_image, (0, 0)) diff --git a/main.py b/main.py index 644de16..6fd945a 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ import pygame from gameEventHandler import handle_game_event from gameContext import GameContext -from gameContext import startup +from startup import startup from PIL import Image pygame.init() diff --git a/startup.py b/startup.py new file mode 100644 index 0000000..a695c33 --- /dev/null +++ b/startup.py @@ -0,0 +1,30 @@ +from gameContext import GameContext +from city import City +from PIL import Image +import pygame +from typing import Tuple, List +from street import Street, StreetType + +def startup(game_context: GameContext): + render_background(game_context) + game_context.city = create_city() + game_context.city.render_city(game_context) + game_context.canvas.blit(game_context.dust_car_pygame, (game_context.dust_car_position_x, game_context.dust_car_position_y)) + +def render_background(game_context: GameContext): + bg_img = Image.open("imgs/background.jpg") + pygame_bg_image = pygame.image.frombuffer(bg_img.tobytes(), bg_img.size, 'RGB') + game_context.canvas.blit(pygame_bg_image, (0, 0)) + +def create_city() -> City: + city: City = City() + streets = create_streets() + for s in streets: + city.add_street(s) + return city + +def create_streets() -> List[Street]: + streets = [] + example_street = Street(1, 10, 2, StreetType.HORIZONTAL) + streets.append(example_street) + return streets \ No newline at end of file diff --git a/street.py b/street.py index 931b189..9287394 100644 --- a/street.py +++ b/street.py @@ -4,7 +4,7 @@ from gameContext import GameContext class StreetType (Enum): VERTICAL = 0 - HORIZONTAL = 0 + HORIZONTAL = 1 class Street: street_type: StreetType @@ -12,14 +12,14 @@ class Street: end_cell: int row_or_column: int - def __init__(self, start_cell: int, end_cell: int, row_or_column: int, street_type: StreetType = StreetType.VERTICAL) -> None: + def __init__(self, start_cell: int, end_cell: int, row_or_column: int, street_type: StreetType) -> None: self.start_cell = start_cell self.end_cell = end_cell self.street_type = street_type self.row_or_column = row_or_column def render(self, game_context: GameContext) -> None: - for i in range(self.start_cell, self.end_cell): + for i in range(self.start_cell, self.end_cell + 1): img_str: str = 'imgs/street_vertical.png' if self.street_type == StreetType.VERTICAL else 'imgs/street_horizontal.png' - cell: Tuple[int, int] = (i, self.row_or_column) if self.street_type == StreetType.VERTICAL else (self.row_or_column, i) + cell: Tuple[int, int] = (self.row_or_column, i) if self.street_type == StreetType.VERTICAL else (i, self.row_or_column) game_context.render_in_cell(cell, img_str)