From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Fri, 2 Jun 2023 14:36:53 +0000 (-0400) Subject: game tweaks + cleanup files X-Git-Tag: game~23 X-Git-Url: http://git.skullheadx.com/projects/suckless.html?a=commitdiff_plain;h=0a48134d5401c24c375a4874fc05ef7b0a239719;p=fruit-ninja.git game tweaks + cleanup files --- diff --git a/bomb.py b/bomb.py index dca47dc..52209cd 100644 --- a/bomb.py +++ b/bomb.py @@ -4,5 +4,6 @@ from fruit import Fruit class Bomb(Fruit): RADIUS = 35 + def draw(self, surf): pygame.draw.circle(surf, BLACK, self.position, self.RADIUS) diff --git a/effect.py b/effect.py index 735d0db..3b2a22c 100644 --- a/effect.py +++ b/effect.py @@ -11,7 +11,7 @@ class Effect: def __init__(self, position, radius, color): 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.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] diff --git a/fruit.py b/fruit.py index 5a97859..489ee9a 100644 --- a/fruit.py +++ b/fruit.py @@ -6,29 +6,32 @@ from setup import * class Fruit: RADIUS_RANGE = [25, 50] - HORIZONTAL_SPAWN_RANGE = [WIDTH / 5, WIDTH * 4 / 5] - VERTICAL_SPAWN_RANGE = [HEIGHT + max(RADIUS_RANGE), HEIGHT*2 + max(RADIUS_RANGE) ] + HORIZONTAL_SPAWN_RANGE = [max(RADIUS_RANGE), WIDTH - max(RADIUS_RANGE)] + VERTICAL_SPAWN_RANGE = [HEIGHT + max(RADIUS_RANGE), HEIGHT * 2 + max(RADIUS_RANGE)] - VERTICAL_TARGET_RANGE = [HEIGHT / 5, HEIGHT * 2/3] - HORIZONTAL_TARGET_RANGE = [WIDTH / 5, WIDTH * 4 / 5] + VERTICAL_TARGET_RANGE = [max(RADIUS_RANGE), HEIGHT * 4 / 5] + HORIZONTAL_TARGET_RANGE = [max(RADIUS_RANGE), WIDTH - max(RADIUS_RANGE)] GRAVITY = 275 COLORS = [RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE] - OUTLINE_WIDTH =3 + OUTLINE_WIDTH = 3 + def __init__(self): self.radius = lerp(self.RADIUS_RANGE[0], self.RADIUS_RANGE[1], random.random()) - self.target = pygame.Vector2(lerp(self.HORIZONTAL_TARGET_RANGE[0], self.HORIZONTAL_TARGET_RANGE[1], random.random()),lerp(self.VERTICAL_TARGET_RANGE[0], self.VERTICAL_TARGET_RANGE[1], random.random())) - self.position = pygame.Vector2(lerp(self.HORIZONTAL_SPAWN_RANGE[0], self.HORIZONTAL_SPAWN_RANGE[1], random.random()), - lerp(self.VERTICAL_SPAWN_RANGE[0], self.VERTICAL_SPAWN_RANGE[1], random.random())) + self.target = pygame.Vector2( + lerp(self.HORIZONTAL_TARGET_RANGE[0], self.HORIZONTAL_TARGET_RANGE[1], random.random()), + lerp(self.VERTICAL_TARGET_RANGE[0], self.VERTICAL_TARGET_RANGE[1], random.random())) + self.position = pygame.Vector2( + lerp(self.HORIZONTAL_SPAWN_RANGE[0], self.HORIZONTAL_SPAWN_RANGE[1], random.random()), + lerp(self.VERTICAL_SPAWN_RANGE[0], self.VERTICAL_SPAWN_RANGE[1], random.random())) self.acceleration = pygame.Vector2(0, self.GRAVITY) - - dy = self.target.y-self.position.y - dx = self.target.x-self.position.x - t = (-2 / self.GRAVITY * dy)**0.5 - self.velocity = pygame.Vector2(dx/t, -(-2 * self.GRAVITY * dy)**0.5) + dy = self.target.y - self.position.y + dx = self.target.x - self.position.x + t = (-2 / self.GRAVITY * dy) ** 0.5 + self.velocity = pygame.Vector2(dx / t, -(-2 * self.GRAVITY * dy) ** 0.5) self.color = random.choice(self.COLORS) diff --git a/game.py b/game.py index 5749803..c8aad21 100644 --- a/game.py +++ b/game.py @@ -36,7 +36,8 @@ class Game: for hit in hits: for i in range(self.EFFECT_COUNT_PER_FRUIT): self.effects.append(Effect(hit.position, hit.radius, hit.color)) - self.fruits.remove(hit) + if hit in self.fruits: + self.fruits.remove(hit) for effect in self.effects: effect_status = effect.update(delta) diff --git a/main.py b/main.py index 99fc4ce..4433359 100644 --- a/main.py +++ b/main.py @@ -18,5 +18,4 @@ while is_running: elif status == COMMAND_START: scene = Game() - pygame.quit() diff --git a/setup.py b/setup.py index 0d2533a..ef30e5a 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,8 @@ DARK_BLUE = (0, 0, 139) 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} +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} # commands