60 lines
1.8 KiB
Plaintext
60 lines
1.8 KiB
Plaintext
class GameSound(object):
|
|
def __init__(self):
|
|
pygame.mixer.init() # 音乐模块初始化
|
|
pygame.mixer.music.load("./feiji/bg2.ogg")
|
|
pygame.mixer.music.set_volume(0.5) # 声音大小 一半
|
|
|
|
self.__bomb = pygame.mixer.Sound("./feiji/bomb.wav")
|
|
|
|
def playBackgroundMusic(self):
|
|
pygame.mixer.music.play(-1) # 开始播放背景音乐
|
|
|
|
def playBombSound(self):
|
|
pygame.mixer.Sound.play(self.__bomb) # 爆炸音乐
|
|
|
|
|
|
class Bomb(object):
|
|
# 初始化爆炸
|
|
def __init__(self, screen, type):
|
|
self.screen = screen
|
|
if type == 'enemy':
|
|
# 加载爆炸资源
|
|
self.mImages = [
|
|
pygame.image.load("./feiji/enemy0_down" + str(v) + ".png") for v in range(1, 5)]
|
|
else:
|
|
# 加载爆炸资源
|
|
self.mImages = [pygame.image.load(
|
|
"./feiji/hero_destroy" + str(v) + ".png") for v in range(1, 4)]
|
|
|
|
self.mImages += self.mImages
|
|
|
|
# 设置当前爆炸播放索引
|
|
self.mIndex = 0
|
|
# 爆炸位置
|
|
self.mPos = [0, 0]
|
|
# 是否可见
|
|
self.mVisible = False
|
|
|
|
# 设置位置
|
|
def action(self, rect):
|
|
# 触发爆炸方法draw
|
|
# 爆炸的坐标
|
|
self.mPos[0] = rect.left
|
|
self.mPos[1] = rect.top
|
|
# 打开爆炸的开关
|
|
self.mVisible = True
|
|
|
|
# 绘制爆炸
|
|
def draw(self):
|
|
if not self.mVisible:
|
|
return
|
|
self.screen.blit(self.mImages[self.mIndex], (self.mPos[0], self.mPos[1]))
|
|
self.mIndex += 1
|
|
if self.mIndex >= len(self.mImages):
|
|
# 如果下标已经到最后 代表爆炸结束
|
|
# 下标重置 mVisible重置
|
|
self.mIndex = 0
|
|
self.mVisible = False
|
|
|
|
|