diff --git a/project/ui_elements/TextLabel.py b/project/ui_elements/TextLabel.py index 3e86973..02ae79e 100644 --- a/project/ui_elements/TextLabel.py +++ b/project/ui_elements/TextLabel.py @@ -2,6 +2,7 @@ import pygame from pygame import Surface, Rect from pygame.font import Font +from sprite.BoundingBox import BoundingBox from sprite.PositionScale import PositionScale from ui_elements.UiElement import UiElement @@ -44,3 +45,31 @@ class TextLabel(UiElement): def set_text(self, new_text: str): self.text = new_text + + def collides_point(self, position): + x, y = self.get_bounding_box().get_position() + # check for the collision on the x-axis + if position[1] < y: + return False + if position[1] > y + self.current_height: + return False + + # the y-axis check is dependent on the alignment + + if position[0] < x: + return False + if position[0] > x + self.current_width: + return False + + # if the point is not outside the text, it is inside the text + return True + + def get_bounding_box(self) -> BoundingBox: + bounding_box_x = self.x_position + if self.alignment == "right": + bounding_box_x = self.x_position - self.current_width + elif self.alignment == "center": + bounding_box_x = self.x_position - self.current_width / 2 + + return BoundingBox(bounding_box_x, self.y_position, self.current_width, self.current_height) +