reverse frameset

This commit is contained in:
Frank DeMarco 2014-04-24 00:43:10 +09:00
parent ea58803930
commit f8b5c68a92
2 changed files with 20 additions and 4 deletions

View File

@ -548,7 +548,7 @@ class GUI(Animation):
self.split += 1
if self.split > self.S_RIGHT:
self.split = self.S_NONE
self.buttons[self.B_SPLIT].set_frame(["Split: no", "Split: L",
self.buttons[self.B_SPLIT].set_frame(["Split: No", "Split: L",
"Split: R"][self.split])
def add_nodeset(self, name):

View File

@ -166,7 +166,9 @@ class Sprite(Animation):
location.fader.set_alpha()
def add_frameset(self, order, framerate=None, name=None):
self.framesets.append(Frameset(self, order, framerate, name))
frameset = Frameset(self, order, framerate, name)
self.framesets.append(frameset)
return frameset
def hide(self):
self.hidden = True
@ -180,6 +182,13 @@ class Sprite(Animation):
else:
self.locations = self.locations[:1]
def reverse(self, frameset=None):
if frameset:
frameset.reverse()
else:
for frameset in self.framesets:
frameset.reverse()
def update(self):
Animation.update(self)
self.draw()
@ -297,6 +306,7 @@ class Frameset():
def __init__(self, sprite, order=[], framerate=None, name=None):
self.sprite = sprite
self.name = name
self.reversed = False
self.order = []
self.rect = Rect(0, 0, 0, 0)
self.add_index(order)
@ -333,10 +343,16 @@ class Frameset():
self.increment_index()
def increment_index(self):
index = self.current_index + 1
if index >= len(self.order):
increment = 1 if not self.reversed else -1
index = self.current_index + increment
if index < 0:
index = self.length() - 1
elif index >= self.length():
index = 0
self.current_index = index
def length(self):
return len(self.order)
def reverse(self):
self.reversed = not self.reversed