diff --git a/data/data.png b/data/data.png index c0f8a629895bd8dad3cfbb90931b931c6a73cd7d..8ef97074fd4aba9d1f6067c4b163aa3bd62ee7c5 100644 Binary files a/data/data.png and b/data/data.png differ diff --git a/data/options.json b/data/options.json index 4daf3514d045a01b50abb1d7ed620290196dabab..4f53c04e4e17614fe5f4eccd52299250eb58f7dd 100644 --- a/data/options.json +++ b/data/options.json @@ -1 +1 @@ -{"asf": 1.0, "master_volume": 50, "music_volume": 21, "sfx_volume": 58, "user_name": "Player"} \ No newline at end of file +{"asf": 1.5, "master_volume": 50, "music_volume": 21, "sfx_volume": 58, "user_name": "Player"} \ No newline at end of file diff --git a/source/api/management/background_manager.py b/source/api/management/background_manager.py index e76edbc5c9e0345225f7669b6c95a4eac5a77239..066024527136cf8693f46f83a24c2a51acc3807a 100644 --- a/source/api/management/background_manager.py +++ b/source/api/management/background_manager.py @@ -62,4 +62,4 @@ class BackgroundManager: """ Updates the scale of the images. """ - self.images = [pygame.transform.scale(image, (int(image.get_width()), int(image.get_height()))) for image in self.images] \ No newline at end of file + self.images = [pygame.transform.scale(image, (int(self.screen.get_width()), int(self.screen.get_height()))) for image in self.images] \ No newline at end of file diff --git a/source/api/scene/base_display.py b/source/api/scene/base_display.py index 48e7081ab38fa44d54d00d90a2d365876f1ee05c..b8bcc59f6fc228043ffea13f97205c47e2a82d9d 100644 --- a/source/api/scene/base_display.py +++ b/source/api/scene/base_display.py @@ -40,6 +40,7 @@ class BaseDisplay(ABC): Returns: None """ + self.background_manager.update_scale() pass def update(self, delta_time: float, events: list[Event]) -> None: diff --git a/source/api/scene/scene.py b/source/api/scene/scene.py index c07ddba3fb9259a81108294c07cc4f9808f6206d..e036e262eacef2c78a10cdef3fda004fac1dd7e8 100644 --- a/source/api/scene/scene.py +++ b/source/api/scene/scene.py @@ -69,7 +69,6 @@ class Scene(BaseDisplay, ABC): None """ self.user_name: str = OptionsManager().user_name - self.background_manager.update_scale() return super().awake() def add_gameobject(self, game_object: GameObject) -> None: diff --git a/source/game/objects/spring.py b/source/game/objects/spring.py index 864e1bad221eaa6f1ad5c43fb492d9d0e101cd06..e44e9746dcf3f65188c0207b6df4b09263c28b50 100644 --- a/source/game/objects/spring.py +++ b/source/game/objects/spring.py @@ -40,12 +40,11 @@ class Spring(GameObject): super().__init__(pos, 0, scene) self.spring_sound: pygame.mixer.Sound = pygame.mixer.Sound(ASSETS_PATH / Path("sounds/spring.wav")) - asf = OptionsManager().asf rel_points = [ - Vector2(-width/2, -height/2)*asf, - Vector2(width/2, -height/2)*asf, - Vector2(width/2, height/2)*asf, - Vector2(-width/2, height/2)*asf + Vector2(-width/2, -height/2), + Vector2(width/2, -height/2), + Vector2(width/2, height/2), + Vector2(-width/2, height/2) ] self.change_score = ChangeScore(add_to_score, True, 1.5, 2) self.add_components( diff --git a/source/game/objects/target.py b/source/game/objects/target.py index 202d90ad3a90928e586e96477ab5d655ecd0f6db..7d14dc05c2d74b2a9c6c2a42c63f7298316b080a 100644 --- a/source/game/objects/target.py +++ b/source/game/objects/target.py @@ -42,6 +42,8 @@ class TargetBase(GameObject): """ self.base_color = base_color self.hit_color = hit_color + self.width = width + self.height = height super().__init__(pos, -1, scene) self.hit_sound: pygame.mixer.Sound = pygame.mixer.Sound(ASSETS_PATH / Path("sounds/target_base.wav")) @@ -108,13 +110,14 @@ class TargetBase(GameObject): Returns: dict: the serialized TargetBase """ + asf = OptionsManager().asf return { "pos": { - "x": self.transform.pos.x, - "y": self.transform.pos.y + "x": self.transform.pos.x/asf, + "y": self.transform.pos.y/asf }, - "width": self.mesh.points[1].x*2, - "height": self.mesh.points[2].y*2, + "width": self.width/asf, + "height": self.height/asf, "rotation": self.transform.rot.get_value(), "base_color": { "r": self.base_color.r, @@ -140,7 +143,10 @@ class TargetBase(GameObject): Returns: TargetBase: the deserialized TargetBase """ - self.transform.pos = Vector2(data["pos"]["x"], data["pos"]["y"]) + asf = OptionsManager().asf + self.transform.pos = Vector2(data["pos"]["x"], data["pos"]["y"]) * asf + self.width = data["width"] * asf + self.height = data["height"] * asf self.transform.rotate(data["rotation"]) self.base_color = Color(data["base_color"]["r"], data["base_color"]["g"], data["base_color"]["b"]) self.hit_color = Color(data["hit_color"]["r"], data["hit_color"]["g"], data["hit_color"]["b"])