From 1df50a33a5bfc258f5220f27fdccb4059c77b7d2 Mon Sep 17 00:00:00 2001 From: "Hannes F. Kuchelmeister" Date: Fri, 5 Nov 2021 21:24:47 +0100 Subject: [PATCH] add different diretion suport for car Co-authored-by: Laura Januleviciute --- Car.py | 32 ++++++++++++++++++++++++-------- main.py | 7 +++++-- sprites/car.png | Bin 0 -> 12307 bytes 3 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 sprites/car.png diff --git a/Car.py b/Car.py index 7a945a6..fefcd80 100644 --- a/Car.py +++ b/Car.py @@ -3,32 +3,48 @@ import random from Bubble import Bubble class Car: - def __init__(self, posX, posY, height, width, game_objects, color=(0, 255,0), directionX=1): + def __init__(self, posX, posY, game_objects, color=(0, 255,0), directionX=1): self.posX = posX self.posY = posY self.color = color self.directionX = directionX - self.width = width - self.height = height + self.width = 173 + self.height = 66 self.game_objects = game_objects self.bubble_spawn_time_ms = 1000 self.time_of_last_spawn = 0 self.BUBBLE_IMAGE = pygame.image.load("sprites/bubble.png") + self.image = pygame.image.load("sprites/car.png") + + if directionX < 0: + self.image = pygame.transform.flip(self.image, True, False) def draw(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect(self.posX, self.posY, self.width, self.height)) + screen.blit(self.image, (self.posX, self.posY)) def update(self, screen): self.posX += self.directionX screen_width, screen_height = screen.get_size() - if self.posX > screen_width: - self.posX = -self.width + if self.directionX > 0: + if self.posX > screen_width: + self.posX = -self.width + else: + if self.posX + self.width < 0: + self.posX = screen_width + self.width + + if self.bubble_spawn_time_ms + self.time_of_last_spawn < pygame.time.get_ticks(): bubble_y_direction = random.uniform(-1, 1) - bubble_x_speeddiff = random.uniform(0, 0.9) bubble_radius = 16 - self.game_objects.append(Bubble(self.posX, self.posY + self.height - bubble_radius, + if self.directionX > 0: + bubble_x_speeddiff = random.uniform(0, 0.9) + bubbleX = self.posX + else: + bubble_x_speeddiff = random.uniform(-0.9, 0) + bubbleX = self.posX + self.width + + self.game_objects.append(Bubble(bubbleX, self.posY + self.height - bubble_radius, self.BUBBLE_IMAGE, radius=bubble_radius, direction=(-self.directionX * bubble_x_speeddiff,bubble_y_direction))) diff --git a/main.py b/main.py index e9a1e87..337421e 100644 --- a/main.py +++ b/main.py @@ -16,6 +16,7 @@ FONT = pygame.font.SysFont('Comic Sans MS', 128) TEXT_SCREEN = FONT.render('Game over!', False, (255, 255, 255)) TEXT_RECT = TEXT_SCREEN.get_rect(center=(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)) + BUBBLE_LIMIT = 100 SCREEN = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT)) @@ -25,8 +26,10 @@ CLOCK = pygame.time.Clock() game_objects = [] bubble_objects = [] -for i in range(10): - game_objects.append(Car(random.uniform(0, 200), i * 50, 30, 50, bubble_objects, directionX=random.uniform(1, 5))) +for i in range(4): + game_objects.append(Car(random.uniform(0, SCREEN_WIDTH), i * 80 + 10, bubble_objects, directionX=random.uniform(1, 5))) +for i in range(4, 7): + game_objects.append(Car(random.uniform(0, SCREEN_WIDTH), i * 80 + 10, bubble_objects, directionX= - random.uniform(1, 5))) game_objects.append(Vacuum(bubble_objects)) diff --git a/sprites/car.png b/sprites/car.png new file mode 100644 index 0000000000000000000000000000000000000000..7e862b4d2006493c6f16176604e55c24c28c8761 GIT binary patch literal 12307 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 literal 0 HcmV?d00001