Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement