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)
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:
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
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()
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()
-from setup import *
from game import Game
+from setup import *
FPS = 120
clock = pygame.time.Clock()
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