class Bomb(Fruit):
- RADIUS = 35
+ RADIUS = 55
def draw(self, surf):
pygame.draw.circle(surf, BLACK, self.position, self.RADIUS)
class Effect:
- LIFE_TIME = 1000
- SPEED_RANGE = [550, 650]
+ LIFE_TIME = 750
+ SPEED_RANGE = [250, 350]
RADIUS_RANGE = [0.25, 0.75]
OUTLINE_WIDTH = 1
class Fruit:
- RADIUS_RANGE = [10,25]#[25, 50]
+ RADIUS_RANGE = [35 ,65]#[25, 50]
HORIZONTAL_SPAWN_RANGE = [max(RADIUS_RANGE), WIDTH - max(RADIUS_RANGE)]
VERTICAL_SPAWN_RANGE = [HEIGHT + max(RADIUS_RANGE), HEIGHT * 2 + max(RADIUS_RANGE)]
class Game:
- BOMB_CHANCE = 0
- EFFECT_COUNT_PER_FRUIT = 50
+ BOMB_CHANCE = 0.1
+ EFFECT_COUNT_PER_FRUIT = 20
def __init__(self):
self.player = Player()
self.fruits = [Fruit()]
self.bombs = []
self.effects = []
- self.wave = 100
+ self.wave = 1
+ self.score = 0
def update(self, delta):
self.effects.append(Effect(hit.position, hit.radius, hit.color))
if hit in self.fruits:
self.fruits.remove(hit)
+ self.score += 1
for effect in self.effects:
effect_status = effect.update(delta)
self.bombs.remove(bomb)
if len(self.fruits) == 0 and len(self.bombs) == 0:
- self.wave += 50
+ self.wave += 1
for i in range(self.wave):
if random.random() < self.BOMB_CHANCE:
self.bombs.append(Bomb())
for bomb in self.bombs:
bomb.draw(surf)
self.player.draw(surf)
+ text_surf = font.render(str(self.score), True, BLACK)
+ surf.blit(text_surf, (WIDTH - text_surf.get_width(), 0))
\ No newline at end of file
delta = clock.tick(FPS)
status = scene.update(delta)
scene.draw(screen)
+ screen.blit(font.render(f"FPS: {clock.get_fps():.2f}", True, BLACK), (0, 0))
pygame.display.update()
if status == COMMAND_EXIT:
elif status == COMMAND_START:
scene = Game()
+
pygame.quit()
def lerp(start, end, weight):
return weight * (end - start) + start
+
+
+font = pygame.font.SysFont("Arial", 50)
\ No newline at end of file