the_game / classes /explosions.py
warhawkmonk's picture
Upload 144 files
34ecae4 verified
Raw
History Blame Contribute Delete
2.86 kB
import pygame
import random
class Explosion(pygame.sprite.Sprite):
def __init__(self, center, explosion_images):
super().__init__()
self.explosion_images = explosion_images
self.image = self.explosion_images[0]
self.rect = self.image.get_rect()
self.rect.center = center
self.frame = 0
self.last_update = pygame.time.get_ticks()
self.frame_rate = 60
self.explosion_sounds = [
pygame.mixer.Sound('game_sounds/explosions/explosion1.wav'),
pygame.mixer.Sound('game_sounds/explosions/explosion2.wav'),
pygame.mixer.Sound('game_sounds/explosions/explosion3.wav')
]
for sound in self.explosion_sounds:
sound.set_volume(0.3)
self.explosion_sound = random.choice(self.explosion_sounds)
self.sound_played = False
def update(self):
now = pygame.time.get_ticks()
if now - self.last_update > self.frame_rate:
self.last_update = now
self.frame += 1
if self.frame == len(self.explosion_images):
self.kill()
else:
center = self.rect.center
self.image = self.explosion_images[self.frame]
self.rect = self.image.get_rect()
self.rect.center = center
if not self.sound_played:
self.explosion_sound.play()
self.sound_played = True
class Explosion2(pygame.sprite.Sprite):
def __init__(self, center, explosion2_images):
super().__init__()
self.explosion2_images = explosion2_images
self.image = self.explosion2_images[0]
self.rect = self.image.get_rect()
self.rect.center = center
self.frame = 0
self.last_update = pygame.time.get_ticks()
self.frame_rate = 60
self.explosion2_sounds = [
pygame.mixer.Sound('game_sounds/explosions/explosion3.wav')
]
for sound in self.explosion2_sounds:
sound.set_volume(0.3)
self.explosion2_sound = random.choice(self.explosion2_sounds)
self.sound_played = False
def update(self):
now = pygame.time.get_ticks()
if now - self.last_update > self.frame_rate:
self.last_update = now
self.frame += 1
if self.frame == len(self.explosion2_images):
self.kill()
else:
center = self.rect.center
self.image = self.explosion2_images[self.frame]
self.rect = self.image.get_rect()
self.rect.center = center
if not self.sound_played:
self.explosion2_sound.play()
self.sound_played = True