Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save cbscribe/4a6b49ab3c21e9ae240ac17cfadc52b5 to your computer and use it in GitHub Desktop.
Save cbscribe/4a6b49ab3c21e9ae240ac17cfadc52b5 to your computer and use it in GitHub Desktop.
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