From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Thu, 1 Jun 2023 18:16:37 +0000 (-0400) Subject: wave spawning + fruit delete logic X-Git-Tag: game~29 X-Git-Url: http://git.skullheadx.com/links.html?a=commitdiff_plain;h=d4d36905f1b5a26cc811b8ef9a42a57f86c85cb2;p=fruit-ninja.git wave spawning + fruit delete logic --- diff --git a/fruit.py b/fruit.py index 26b598f..740dadc 100644 --- a/fruit.py +++ b/fruit.py @@ -5,15 +5,16 @@ from setup import * class Fruit: SPAWN_RANGE = [WIDTH / 5, WIDTH * 4 / 5] - VERTICAL_VELOCITY_RANGE = [-500, -350] - HORIZONTAL_VELOCITY_RANGE = [-100, 100] + VERTICAL_VELOCITY_RANGE = [-500, -300] + HORIZONTAL_VELOCITY_RANGE = [-150, 150] GRAVITY = 275 - RADIUS = 50 + RADIUS_RANGE = [25, 50] def __init__(self): + self.radius = lerp(self.RADIUS_RANGE[0], self.RADIUS_RANGE[1], random.random()) self.position = pygame.Vector2(lerp(self.SPAWN_RANGE[0], self.SPAWN_RANGE[1], random.random()), - HEIGHT - self.RADIUS) + HEIGHT - self.radius) self.velocity = pygame.Vector2( lerp(self.HORIZONTAL_VELOCITY_RANGE[0], self.HORIZONTAL_VELOCITY_RANGE[1], random.random()), lerp(self.VERTICAL_VELOCITY_RANGE[0], self.VERTICAL_VELOCITY_RANGE[1], random.random())) @@ -24,8 +25,8 @@ class Fruit: self.position += self.velocity * delta / 1000 def get_rect(self): - return pygame.Rect(self.position - pygame.Vector2(self.RADIUS / 2, self.RADIUS / 2), - pygame.Vector2(self.RADIUS, self.RADIUS)) + return pygame.Rect(self.position - pygame.Vector2(self.radius / 2, self.radius / 2), + pygame.Vector2(self.radius, self.radius)) def draw(self, surf): - pygame.draw.circle(surf, GREEN, self.position, self.RADIUS) + pygame.draw.circle(surf, GREEN, self.position, self.radius) diff --git a/game.py b/game.py index 52fe0bd..de20d9e 100644 --- a/game.py +++ b/game.py @@ -8,6 +8,7 @@ class Game: def __init__(self): self.player = Player() self.fruits = [Fruit()] + self.wave = 1 def update(self, delta): for event in pygame.event.get(): @@ -19,10 +20,18 @@ class Game: fruit.update(delta) if self.player.hits(fruit): hits.append(fruit) + fr = fruit.get_rect() + if (not -fruit.radius <= fr.x < WIDTH) or fr.y > HEIGHT: + self.fruits.remove(fruit) for hit in hits: self.fruits.remove(hit) + if len(self.fruits) == 0: + self.wave += 1 + for i in range(self.wave): + self.fruits.append(Fruit()) + def draw(self, surf): screen.fill(WHITE) for fruit in self.fruits: