]> Skullheadx's Git Forge - fruit-ninja.git/commitdiff
wave spawning + fruit delete logic
authorSkullheadx <94652084+Skullheadx@users.noreply.github.com>
Thu, 1 Jun 2023 18:16:37 +0000 (14:16 -0400)
committerSkullheadx <94652084+Skullheadx@users.noreply.github.com>
Thu, 1 Jun 2023 18:16:37 +0000 (14:16 -0400)
fruit.py
game.py

index 26b598f0bb1358d1709352876c2de81053088cab..740dadc7441a156f6737d3edf8993372ad27aae0 100644 (file)
--- 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 52fe0bd0045edca214c3db34d6fcf3c47848a1cf..de20d9e912e689440f989ab9501abf7910510da2 100644 (file)
--- 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: