]> Skullheadx's Git Forge - fruit-ninja.git/commitdiff
effect affected by bomb
authorSkullheadx <94652084+Skullheadx@users.noreply.github.com>
Sat, 3 Jun 2023 00:13:00 +0000 (20:13 -0400)
committerSkullheadx <94652084+Skullheadx@users.noreply.github.com>
Sat, 3 Jun 2023 00:13:00 +0000 (20:13 -0400)
bomb.py
effect.py
game.py
main.py
setup.py

diff --git a/bomb.py b/bomb.py
index 0af48a649d0495017cf97dbd9a2fa9d7d5ae4a03..20d0465428932c0c64efd7f11320e51fc387a33d 100644 (file)
--- a/bomb.py
+++ b/bomb.py
@@ -19,7 +19,7 @@ class Bomb(Fruit):
         if self.exploded:
             self.exploded_time += delta ** 2
 
-    def explode(self, fruits, bombs):
+    def explode(self, fruits, bombs, effects):
         if self in bombs:
             self.exploded = True
         self.velocity = pygame.Vector2(0, 0)
@@ -27,9 +27,11 @@ class Bomb(Fruit):
 
         for fruit in fruits:
             fruit.velocity += (fruit.position - self.position).normalize() * self.POWER
+        for effect in effects:
+            effect.velocity += (effect.position - self.position).normalize() * self.POWER
         for bomb in bombs:
             if not bomb.exploded:
-                bomb.explode(fruits, bombs)
+                bomb.explode(fruits, bombs, effects)
 
     def draw(self, surf):
         if self.exploded:
index d6df147b593bb93732718ee18a5f7608498fdd0a..412601fb8aa828988990c8ae74a257e3b35483ca 100644 (file)
--- a/effect.py
+++ b/effect.py
@@ -8,14 +8,18 @@ class Effect:
 
     OUTLINE_WIDTH = 1
 
-    def __init__(self, position, radius, color):
+    def __init__(self, position, radius, color, darken=True):
         self.position = pygame.Vector2(position)
         self.velocity = pygame.Vector2(random.random() - 0.5, random.random() - 0.5).normalize() * lerp(
             self.SPEED_RANGE[0], self.SPEED_RANGE[1], random.random())
         self.radius = radius * lerp(self.RADIUS_RANGE[0], self.RADIUS_RANGE[1], random.random())
         self.time = self.LIFE_TIME
-        self.color = DARKEN[color]
-        self.outline_color = color
+        if darken:
+            self.color = DARKEN[color]
+            self.outline_color = color
+        else:
+            self.color = color
+            self.outline_color = DARKEN[color]
 
     def update(self, delta):
         self.position += self.velocity * delta / 1000
diff --git a/game.py b/game.py
index 474e3d63852aa749e917dd83e8d0b043a2afd234..bc80650cc70b2d4ac6ff4f7c48bb5a7d72ea4ebc 100644 (file)
--- a/game.py
+++ b/game.py
@@ -9,8 +9,9 @@ from setup import *
 class Game:
     BOMB_CHANCE = 0.1
     EFFECT_COUNT_PER_FRUIT = 20
+    EFFECT_COUNT_PER_BOMB = 0
     COMBO_TIME = 250
-    GAME_OVER_TIME = 1000
+    GAME_OVER_TIME = 2000
 
     def __init__(self):
         self.player = Player()
@@ -80,7 +81,10 @@ class Game:
         for bomb in self.bombs:
             bomb.update(delta)
             if self.player.hits(bomb):
-                bomb.explode(self.fruits, self.bombs)
+                for i in range(self.EFFECT_COUNT_PER_BOMB):
+                    self.effects.append(Effect(bomb.position + pygame.Vector2(random.random(), random.random()), bomb.radius, WHITE, darken=False))
+
+                bomb.explode(self.fruits, self.bombs, self.effects)
                 self.game_over = True
                 self.player.sliced_points.clear()
             br = bomb.get_rect()
diff --git a/main.py b/main.py
index 3c632a3067ef6dd3fe714a3293326a5aa89b496e..86c1e386cc30151a7ece3f3677bb606cb52c24bd 100644 (file)
--- a/main.py
+++ b/main.py
@@ -1,5 +1,5 @@
-from setup import *
 from game import Game
+from setup import *
 
 FPS = 120
 clock = pygame.time.Clock()
index 11baf4591d77c8dd66bb731bd63b941362b750c1..2bdc58abffd9e0550c2b4e7e9e8ff08ce7afcc94 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -31,8 +31,7 @@ DARK_ORANGE = (255, 140, 0)
 DARK_YELLOW = (255, 215, 0)
 DARK_PURPLE = (75, 0, 130)
 DARKEN = {RED: DARK_RED, ORANGE: DARK_ORANGE, YELLOW: DARK_YELLOW, GREEN: DARK_GREEN, BLUE: DARK_BLUE,
-          PURPLE: DARK_PURPLE}
-LIGHTEN = {RED: ORANGE, ORANGE: YELLOW, YELLOW: GREEN, GREEN: BLUE, BLUE: PURPLE, PURPLE: RED}
+          PURPLE: DARK_PURPLE, WHITE: GRAY}
 
 # commands
 COMMAND_EXIT = 0