目录
Pygame 是一组用来开发游戏软件的Python程序模块,基于 SDL库的基础上开发。允许你在Python程序中创建功能丰富的游戏和多媒体程序,Pygame 是一个高可移植性的模块可以支持多个操作系统。
开发环境:python3.7 + pycharm社区版
一、pygame的安装
1 图形界面安装
在pycharm中选择File---settings
2 命令行安装
在terminal中执行:
pip install pygame -i https://pypi.douban.com
3 pygame最简结构
新建一个py文件,按如下所示键入代码:
pygame基本结构包括三部分:
- 初始化pygame
- 创建游戏窗口
- 创建游戏循环
二、音乐播放器的实现
实现的播放器如下所示:
项目的结构:
实现播放器要解决以下问题:
- 如何现实图片
- 如何播放音乐
- 如何判断鼠标是否点击了按钮
- 如何现实文字
- 如何实现进度条
1 图片显示
图像是游戏中⾮常重要的资源,图像可能就是⼀些背景、角色等。pygame支持以下格式图像:jpeg、png、bmp、gif等。通常要显示一幅图⽚,分三个步骤:
# 显示背景
# 1.加载图片
background = pygame.image.load("images/player.png")
# 2 把图片贴到窗口上
# 参数:要显示的图片对象,在目标窗口的坐标
screen.blit(background,(0,0))
# 3 刷新屏幕
pygame.display.flip()
完整代码:
# 导入pygame
import pygame
#rect描述对象位置,参数包括left(x坐标),top(y坐标),width,height
WINDOW = pygame.Rect(0,0,480,380)
def main():
global index
index = 0 # 默认是第一首歌曲的下标
# 1. 初始化pygame的各个模块
pygame.init()
# 2 建立一个游戏窗口
screen = pygame.display.set_mode(WINDOW.size)
# 设置窗口标题
pygame.display.set_caption("音乐播放器")
# 显示背景
background = pygame.image.load("images/player.png") # 加载图片
screen.blit(background,(0,0)) # 把background贴到窗口上
pygame.display.flip() # 刷新屏幕
# 3 建立一个游戏循环
running = True
while running:
# 处理用户的事件
for event in pygame.event.get():
# type事件类型
if event.type == pygame.QUIT:
running = False
if __name__ == '__main__':
main()
运行就可以看到界面了:
2 播放音乐
播放音乐使用mixer模块,其中常用的方法:
pygame.mixer.music.load(file) 使用文件名作为参数载入音乐 ,音乐可以是mp3等格式
pygame.mixer.music.play() 播放载入的音乐pygame.mixer.music.stop() 停止播放,
pygame.mixer.music.pause() 暂停播放。pygame.mixer.music.unpause() 取消暂停。
pygame.mixer.music.set_volume(value) 来设置音量,音量value的范围为0.0到1.0。
pygame.mixer.music.get_volume() 获取音量大小。
pygame.mixer.music.get_pos() 获取播放的时长,单位毫秒
因为要播放的不是一首歌曲,所以可以定义一个全局变量保存歌曲列表。定义一个函数完成歌曲列表的加载
song_list = [] # 歌曲列表
# 加载歌曲列表
def load_songs():
songs = os.listdir("music")
songs = ["music/"+song for song in songs]
song_list.extend(songs)
# 播放指定的歌曲
def play(index): # index当前歌曲的索引
pygame.mixer.music.stop()
# 播放音乐
music = pygame.mixer.music.load(song_list[index])
pygame.mixer.music.play()
主函数:
def main():
index = 0 # 默认是第一首歌曲的下标
# 1. 初始化pygame的各个模块
pygame.init()
# 2 建立一个游戏窗口
screen = pygame.display.set_mode(WINDOW.size)
# 设置窗口标题
pygame.display.set_caption("音乐播放器")
# 显示背景
background = pygame.image.load("./images/player.png") # 加载图片
screen.blit(background,(0,0)) # 把background贴到窗口上
pygame.display.flip() # 刷新屏幕
# 加载歌曲列表并播放第一首歌曲
load_songs()
play(index)
# 3 建立一个游戏循环
running = True
while running:
# 处理用户的事件
for event in pygame.event.get():
# type事件类型
if event.type == pygame.QUIT:
running = False
到现在为止,我们已经可以播放音乐了