Spaces:
Configuration error
Configuration error
File size: 2,864 Bytes
34ecae4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | 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
|