From 9d789eb4126ca281d6cae92fa9b47b98adb49f5b Mon Sep 17 00:00:00 2001 From: Anthony Samms Date: Sat, 15 Nov 2025 13:18:31 -0500 Subject: [PATCH] chibis now move at current bpm --- libs/bg_collabs/a3.py | 4 ++-- libs/bg_collabs/practice.py | 2 +- libs/bg_objects/chibi.py | 26 ++++++++++++++++++-------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/libs/bg_collabs/a3.py b/libs/bg_collabs/a3.py index 255b9fc..8ada5c9 100644 --- a/libs/bg_collabs/a3.py +++ b/libs/bg_collabs/a3.py @@ -13,7 +13,7 @@ class Background: def __init__(self, tex: TextureWrapper, player_num: PlayerNum, bpm: float, path: str, max_dancers: int): self.tex_wrapper = tex self.max_dancers = max_dancers - self.don_bg = DonBG(self.tex_wrapper, 0, 1, path) + self.don_bg = DonBG(self.tex_wrapper, 0, PlayerNum.P1, path) self.bg_normal = BGNormal(self.tex_wrapper, 0, path) self.bg_fever = BGFever(self.tex_wrapper, 0, path) self.footer = None @@ -71,7 +71,7 @@ class BGNormal(BGNormal2): tex.draw_texture(self.name, 'curtain') class DonBG(DonBGBase): - def __init__(self, tex: TextureWrapper, index: int, player_num: int, path: str): + def __init__(self, tex: TextureWrapper, index: int, player_num: PlayerNum, path: str): super().__init__(tex, index, player_num, path) self.move = Animation.create_move(10000, total_distance=-1280) self.move.start() diff --git a/libs/bg_collabs/practice.py b/libs/bg_collabs/practice.py index 49a5839..d6706bc 100644 --- a/libs/bg_collabs/practice.py +++ b/libs/bg_collabs/practice.py @@ -8,7 +8,7 @@ class Background: def __init__(self, tex: TextureWrapper, player_num: PlayerNum, bpm: float, path: str, max_dancers: int): self.tex_wrapper = tex self.max_dancers = max_dancers - self.don_bg = DonBG1(self.tex_wrapper, 0, 1, path) + self.don_bg = DonBG1(self.tex_wrapper, 0, PlayerNum.P1, path) self.bg_normal = BGNormalBase(self.tex_wrapper, 0, path) self.bg_fever = None self.footer = None diff --git a/libs/bg_objects/chibi.py b/libs/bg_objects/chibi.py index d27a637..0932313 100644 --- a/libs/bg_objects/chibi.py +++ b/libs/bg_objects/chibi.py @@ -33,7 +33,7 @@ class BaseChibi: self.texture_change = Animation.create_texture_change(duration, textures=textures) self.texture_change.start() - def update(self, current_time_ms: float): + def update(self, current_time_ms: float, bpm: float): self.hori_move.update(current_time_ms) self.vert_move.update(current_time_ms) if self.vert_move.is_finished: @@ -41,6 +41,16 @@ class BaseChibi: self.texture_change.update(current_time_ms) if self.texture_change.is_finished: self.texture_change.restart() + if bpm != self.bpm: + self.bpm = bpm + duration = (60000 / self.bpm) / 2 + textures = [((duration / len(self.keyframes))*i, (duration / len(self.keyframes))*(i+1), index) for i, index in enumerate(self.keyframes)] + self.texture_change = Animation.create_texture_change(duration, textures=textures) + self.texture_change.start() + self.hori_move = Animation.create_move(60000 / self.bpm * 5, total_distance=1280) + self.hori_move.start() + self.vert_move = Animation.create_move(60000 / self.bpm / 2, total_distance=50, reverse_delay=0) + self.vert_move.start() def draw(self, tex: TextureWrapper): tex.draw_texture(self.name, str(self.index), frame=self.texture_change.attribute, x=self.hori_move.attribute, y=-self.vert_move.attribute+(self.is_2p*535)) @@ -67,8 +77,8 @@ class ChibiBad(BaseChibi): self.texture_change = Animation.create_texture_change(duration, textures=textures) self.texture_change.start() - def update(self, current_time_ms: float): - super().update(current_time_ms) + def update(self, current_time_ms: float, bpm: float): + super().update(current_time_ms, bpm) self.s_texture_change.update(current_time_ms) self.fade_in.update(current_time_ms) @@ -88,8 +98,8 @@ class Chibi2(BaseChibi): self.rotate = Animation.create_move(60000 / self.bpm, total_distance=360) self.rotate.start() - def update(self, current_time_ms: float): - super().update(current_time_ms) + def update(self, current_time_ms: float, bpm: float): + super().update(current_time_ms, bpm) self.rotate.update(current_time_ms) if self.rotate.is_finished: self.rotate.restart() @@ -118,8 +128,8 @@ class Chibi13(BaseChibi): self.scale.start() self.frame = 0 - def update(self, current_time_ms: float): - super().update(current_time_ms) + def update(self, current_time_ms: float, bpm: float): + super().update(current_time_ms, bpm) self.scale.update(current_time_ms) if self.scale.is_finished: self.scale.restart() @@ -153,7 +163,7 @@ class ChibiController: self.bpm = bpm for i in range(len(self.chibis)-1, -1, -1): chibi = self.chibis[i] - chibi.update(current_time_ms) + chibi.update(current_time_ms, bpm) if chibi.hori_move.is_finished: self.chibis.remove(chibi)