添加背景图片
相信对于 Pygame 有所了解的小伙伴应该清楚,在版本2.0以前,Pygame 加载图片只支持 BMP 格式,所以我们需要先生成 BMP 格式的图片,这里我选择网上的自动转换网站:
这个网站非常好用,后面我们还会用它来进行音频文件的转换
拿到背景 BMP 文件后,我们就可以编写代码来加载图片了
import pygame import sys import random from pygame.locals import * pygame.init() size = width, height = 430, 215 screen = pygame.display.set_mode(size) pygame.display.set_caption("自制MP3") bg = pygame.image.load_basic("/Users/edisonvera/Downloads/luobologo.bmp") bgrect = bg.get_rect()
下面我们来看下效果
while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() screen.blit(bg, bgrect)
效果图:
添加雪花特效
接下来,我们给我们的背景增加一些特效,比如雪花
我们先在画布内随机生成一些点
def snow(size): snow_list = [] for i in range(150): x_site = random.randrange(0, size[0]) y_site = random.randrange(0, size[1]) X_shift = random.randint(-1, 1) radius = random.randint(4, 6) snow_list.append([x_site, y_site, X_shift, radius]) return snow_list
然后再把生成的这些点状图案画到我们的背景图当中
for i in range(len(snow_list)): pygame.draw.circle(screen, (255, 255, 255), snow_list[i][:2], snow_list[i][3] - 3) snow_list[i][0] += snow_list[i][2] snow_list[i][1] += snow_list[i][3] if snow_list[i][1] > size[1]: snow_list[i][1] = random.randrange(-50, -10) snow_list[i][0] = random.randrange(0, size[0])
这样,我们就有了雪花飘飘的感觉了
添加音频
最后,我们来加载音频,因为 Pygame 对于 mp3 等音频格式的文件支持的不太好,所以还是使用上面的网站,把对应的音频文件转成 ogg 格式
然后就可以加载音频文件了
pygame.mixer.init() track = pygame.mixer.music.load("/Users/edisonvera/Downloads/snow.ogg") pygame.mixer.music.play() pygame.mixer_music.fadeout(600000) pause = False
当然,对于一个简易的播放器来说,暂停、开始都是必备的,我们再增加点击键盘的空格,来控制播放的功能
if pause: pygame.mixer.music.pause() else: pygame.mixer.music.unpause()
这样,一个简易的 MP3 播放器就完成了,快来试试吧!