From 823149738b214af14737df4c87d0cb40fb45c821 Mon Sep 17 00:00:00 2001 From: Frank DeMarco Date: Sun, 24 May 2020 01:37:03 -0400 Subject: [PATCH] sprite areas member var --- pgfw/Audio.py | 5 +++-- pgfw/Sprite.py | 9 ++++++++- pgfw/extension.py | 4 ++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/pgfw/Audio.py b/pgfw/Audio.py index 98e0ea9..7cb1dd0 100644 --- a/pgfw/Audio.py +++ b/pgfw/Audio.py @@ -107,8 +107,9 @@ class Audio(Animation): return True return False - def play_sfx(self, name): - self.sfx[name].play() + def play_sfx(self, name, loops=None, maxtime=None, fade_ms=None, position=None, + x=None): + self.sfx[name].play(loops, maxtime, fade_ms, position, x) # # Loading BGM procedure diff --git a/pgfw/Sprite.py b/pgfw/Sprite.py index 87e28e9..7815ea5 100644 --- a/pgfw/Sprite.py +++ b/pgfw/Sprite.py @@ -31,10 +31,12 @@ class Sprite(Animation): self.display_surface = self.get_display_surface() self.wipe_blinds = [] self.current_wipe_index = 0 - self.register(self.toggle_hidden, self.wipe_out) + self.areas = None + self.register(self.toggle_hidden, self.wipe_out, self.set_frameset) def reset(self): self.halt(self.wipe_out) + self.halt(self.set_frameset) self.current_wipe_index = 0 def __getattr__(self, name): @@ -264,6 +266,9 @@ class Sprite(Animation): def get_current_blinds(self): return self.wipe_blinds[self.current_wipe_index] + def set_areas(self, areas): + self.areas = areas + def update(self, areas=None, substitute=None, flags=0): Animation.update(self) if self.is_stepping(): @@ -271,6 +276,8 @@ class Sprite(Animation): if self.get_current_frameset().length(): if self.is_playing(self.wipe_out): areas = self.get_current_blinds() + elif not areas and self.areas: + areas = self.areas self.draw(areas, substitute, flags) for child in self.children.values(): if self.draw_children_on_frame: diff --git a/pgfw/extension.py b/pgfw/extension.py index 0f642f5..370cc08 100644 --- a/pgfw/extension.py +++ b/pgfw/extension.py @@ -27,9 +27,9 @@ def get_step_relative(start, end, step): def get_segments(start, end, count): rel_step = get_step_relative(start, end, 1 / float(count)) - segs = [[start]] + segs = [[Vector(start[0], start[1])]] for ii in range(count): - seg_end = segs[-1][0][0] + rel_step[0], segs[-1][0][1] + rel_step[1] + seg_end = Vector(segs[-1][0].x + rel_step.x, segs[-1][0].y + rel_step.y) segs[-1].append(seg_end) if ii < count - 1: segs.append([seg_end])