From 5b6a0f1b24b121eb16c1ac369f8cc4edc944d7cb Mon Sep 17 00:00:00 2001 From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Thu, 1 Jun 2023 13:33:39 -0400 Subject: [PATCH] hitboxes --- game.py | 1 + player.py | 28 ++++++++++++++++++---------- setup.py | 3 ++- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/game.py b/game.py index 6f0d24e..a12de98 100644 --- a/game.py +++ b/game.py @@ -1,6 +1,7 @@ from setup import * from player import Player + class Game: def __init__(self): diff --git a/player.py b/player.py index 70e7b24..07e0171 100644 --- a/player.py +++ b/player.py @@ -3,25 +3,33 @@ from setup import * class Player: LIFE_TIME = 100 + INFLATE_SCALE = 20 def __init__(self): - self.sliced = [] + self.sliced_points = [] + self.hitboxes = [] def update(self, delta): pressed = pygame.mouse.get_pressed() if pressed[0]: pos = pygame.mouse.get_pos() - self.sliced.append((pos, pygame.time.get_ticks())) - else: - self.sliced.clear() - for i, val in enumerate(self.sliced): + self.sliced_points.append((pygame.Vector2(pos), pygame.time.get_ticks())) + for i, val in enumerate(self.sliced_points): pos, time = val if pygame.time.get_ticks() - time > self.LIFE_TIME: - self.sliced.pop(i) + self.sliced_points.pop(i) break + if len(self.sliced_points) > 1: + self.hitboxes.clear() + for i in range(len(self.sliced_points) - 1): + self.hitboxes.append(pygame.Rect(self.sliced_points[i][0], + (self.sliced_points[i][0] - self.sliced_points[i + 1][0])).inflate( + self.INFLATE_SCALE, self.INFLATE_SCALE)) def draw(self, surf): - for pos, time in self.sliced: - pygame.draw.circle(surf, RED, pos, 10) - if len(self.sliced) > 1: - pygame.draw.lines(surf, BLACK, False, [a for a, b in self.sliced], 10) + for hitbox in self.hitboxes: + pygame.draw.rect(surf, GREEN, hitbox) + # for pos, time in self.sliced_points: + # pygame.draw.circle(surf, RED, pos, 10) + # if len(self.sliced_points) > 1: + # pygame.draw.lines(surf, BLACK, False, [a for a, b in self.sliced_points], 3) diff --git a/setup.py b/setup.py index ab8daf6..8f9b5e9 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,5 @@ import pygame - pygame.init() WIDTH, HEIGHT = 800, 500 @@ -12,6 +11,8 @@ pygame.display.set_caption("Fruit Ninja") WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) +GREEN = (0, 255, 0) +BLUE = (0, 0, 255) # commands COMMAND_EXIT = 0 -- 2.54.0