Files
Super-HUGS-Revolution-98/animation.py

44 lines
1.5 KiB
Python

###########################################
# Created on 1-9-2013. Miguel Angel Astor #
###########################################
class Animation:
""" This class represents an animated sprite. """
def __init__(self, name = "Default", num_frames = 1, frame_start_offset = 0):
""" Initializes an empty animation. """
self.fps = 0
self.name = name
self.looping = False
self.frame_start = frame_start_offset
self.num_frames = num_frames
self.current_frame = 0
def __str__(self):
""" Returns a string representation of this animation. """
return "Animation :: Name: " + self.name + " :: FPS: " + str(self.fps) +
" :: Looping : " + str(self.looping) + " :: Current frame: " +
str(self.current_frame)
def get_current_frame(self):
""" Returns the current frame of the animation. """
return self.current_frame
def get_looping(self):
return self.looping
def set_looping(self, looping):
self.looping = looping
def get_frames_per_second(self):
return self.fps
def set_frames_per_second(self, fps):
self.fps = fps
def generate_animation(self):
""" Generator function that returns the next frame of the animation. """
while True:
for frame in range(self.frame_start, self.frame_start + self.num_frames):
self.current_frame = frame - self.frame_start
yield frame