以下是部分代码预览:
"""利用音乐结束事件循环播放多首音乐.py ,本程序在播放完一首音乐后,会自动触发音乐结束事件,从而播放下一首音乐,在游戏中不止播放一首背景音乐时非常需要这段代码"""
import pygame
# 定义颜色变量
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
red = (255, 0, 0)
pygame.init()
# 设置屏幕宽度和高度
size = (700, 500)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("利用事件循环播放多首音乐")
# 此变量用来当单击窗口关闭按钮时退出while循环
done = False
# 控制每秒显示的帧数的对象
clock = pygame.time.Clock()
music_list = ['纯音乐.mp3','滴水.mp3','海底小纵队.mp3','欢快6搬陶俑.mp3']
music_amounts = len(music_list)
music_index = 0
# 播放音乐,设置音乐结束事件
pygame.mixer.music.load(music_list[music_index])
pygame.mixer.music.set_endevent(pygame.constants.USEREVENT) # 音乐结束事件
pygame.mixer.music.play()
# -------- 主循环 -----------
while not done:
for event in pygame.event.get(): # 迭代每个事件
if event.type == pygame.QUIT: # 如果单击了关闭按钮
done = True # 此标题为True,进而while循环会退出
elif event.type == pygame.constants.USEREVENT:
# 当音乐播放完毕后会触发此事件,这时可以播放列表中的下一首音乐。
music_index +=1
music_index = music_index % music_amounts
pygame.mixer.music.load(music_list[music_index])
pygame.mixer.music.play()
# 这里可以处理其它事件
# 这里可以处理游戏逻辑,从而更新游戏中角色的坐标
# 背景为白色,然后可以在上面重画其它角色
screen.fill(white)
# 这里的代码可以是重画所有角色
pygame.display.flip() # 刷新显示
# 设置fps为60
clock.tick(60)
# 安全退出到IDLE
pygame.quit()
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
