From 7b02d5c4f8f49607b5fb21b19a2ed46b18a3ff1d Mon Sep 17 00:00:00 2001 From: prkzbs59u <13617842856@163.com> Date: Tue, 26 Apr 2022 18:46:26 +0800 Subject: [PATCH] ADD file via upload --- explode.py | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 explode.py diff --git a/explode.py b/explode.py new file mode 100644 index 0000000..376cf2d --- /dev/null +++ b/explode.py @@ -0,0 +1,97 @@ +from typing import Any + +import pygame +from pygame.sprite import Sprite + + +class Explode0(Sprite): + def __init__(self, ai_game): + super().__init__() + # 获取屏幕设置 + self.screen = ai_game.screen + self.screen_rect = ai_game.screen.get_rect() + self.settings = ai_game.settings + + +class Explode(Explode0): # 敌人的爆炸 + def __init__(self, ai_game): + super().__init__(ai_game) + self.images = self.settings.frame_images + self.frame = 0 + self.image = self.images[self.frame] + self.rect = self.image.get_rect() + self.last_frame = 15 + + self.last_time = pygame.time.get_ticks() + self.now_time = None + self.frame_rate = 0 + + sound = pygame.mixer.Sound('resource/Bonus/boom.wav') + # sound.set_volume(0.9) + sound.play() + + def update(self): + self.now_time = pygame.time.get_ticks() + if self.now_time - self.last_time > self.frame_rate: + self.last_time = self.now_time + if self.frame <= self.last_frame: + self.image = self.images[self.frame] + self.frame += 1 + else: + self.kill() + + +class Explode1(Explode0): # 飞船被击毁时的爆炸 + def __init__(self, ai_game): + super().__init__(ai_game) + # 导入图片 + self.images = [pygame.image.load("resource/Damage/playerShip3_damage" + str(i) + ".png") for i in range(1, 4)] + self.image_index = 2 + self.image = self.images[self.image_index] + self.image_rect = self.image.get_rect() + self.image_index = 3 + # 改变爆炸 + self.ready_to_change = 0 + + # 播放声音 + sound = pygame.mixer.Sound('resource/Bonus/sfx_lose.ogg') + sound.play() + + def update(self, *args: Any, **kwargs: Any) -> None: + if self.image_index > 0: + self.ready_to_change += 1 + if self.ready_to_change % 10 == 0: + self.image_index -= 1 + self.image = self.images[self.image_index] + else: + self.kill() + # print("dw") + + +class Explode2(Explode0): # 飞船被击中的提示 + def __init__(self, ai_game): + super().__init__(ai_game) + # 导入图片 + self.ship = ai_game.ship + self.images = [pygame.image.load("resource/Effects/shield" + str(i) + ".png") for i in range(1, 4)] + self.image_index = 2 + self.image = self.images[self.image_index] + self.image_rect = self.image.get_rect() + self.rect = self.image_rect + # 改变爆炸 + self.ready_to_change = 0 + + # 播放声音 + sound = pygame.mixer.Sound("resource/Bonus/sfx_zap.ogg") + sound.set_volume(0.1) + sound.play() + + def update(self, *args: Any, **kwargs: Any) -> None: + self.rect.center = self.ship.rect.center + if self.image_index >= 0: + self.ready_to_change += 1 + if self.ready_to_change % 10 == 0: + self.image_index -= 1 + self.image = self.images[self.image_index] + else: + self.kill()