Forked from Gwith/gist:67cc68d060626b96d865f272d37295a5
Last active
April 27, 2017 23:04
-
-
Save cbscribe/4a6b49ab3c21e9ae240ac17cfadc52b5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Explosion(pygame.sprite.Sprite): | |
def __init__(self, center, size): | |
pygame.sprite.Sprite.__init__(self) | |
self.size = size | |
self.image = explosion_anim[self.size][0] | |
self.rect = self.image.get_rect() | |
self.rect.center = center | |
self.frame = 0 # set frame to 0 (frame will increment based on frame rate) | |
self.last_update = pygame.time.get_ticks() # set last_update to gametime in miliseconds (since object initaited) | |
self.frame_rate = 50 | |
def update(self): | |
now = pygame.time.get_ticks() # set now to gametime in miliseconds (since update method ran) | |
if now - self.last_update > self.frame_rate: # if now - class attribute greater than 50 | |
self.last_update = now # update class attribute to now | |
self.frame += 1 # add 1 to frame when update method is ran if conditional is met | |
if self.frame == len(explosion_anim[self.size]): # len(explosion_anim[self.size') gives the length of the list of explosion frames | |
# if we've tried to go past the last frame, delete the sprite | |
self.kill() | |
else: | |
center = self.rect.center # this records the *current* center of the sprite | |
self.image = explosion_anim[self.size][self.frame] # this sets the image to which ever explosion we are in in the list. | |
self.rect = self.image.get_rect() # find the rectangle of that image | |
self.rect.center = center # put the new image's center at the previous center location |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment