一、图像
要在屏幕上 看到某一个图像的内容,需要按照三个步骤
1.使用 pygame.image.load() 加载图像的数据
2.使用 游戏屏幕 对象,调用 blit 方法 将图像绘制到指定位置
3.调用 pygame.display.update() 方法更新整个屏幕的显示
二、声音
pygame.mixer是一个用来处理声音的模块,其含义为“混音器”。
参考:https://www.jb51.net/article/64110.htm
播放MP3使用。
pygame.mixer.music.load("filename.mp3")
三、时钟
要使用 时钟对象 需要两步:
1)在 游戏初始化 创建一个 时钟对象
2)在 游戏循环 中让时钟对象调用 tick(帧率) 方法
tick 方法会根据 上次被调用的时间,自动设置 游戏循环 中的延时。
四、精灵和精灵组
在游戏开发中,通常把显示图像的对象叫做精灵Sprite。为了简化开发步骤,pygame提供了两个类。
pygame.sprite.Sprite —— 存储 图像数据 image 和 位置 rect 的 对象
pygame.sprite.Group
一个 精灵组 可以包含多个 精灵 对象
五、撞球代码:
import pygame
import sys
pygame.init() # 初始化pygame
pygame.mixer.init() #mixer的初始化
size = width, height = 640, 480 # 设置窗口大小
screen = pygame.display.set_mode(size) # 显示窗口
color = (0, 0, 0) # 设置颜色
ball = pygame.image.load('ball.png') # 加载图片
ballrect = ball.get_rect() # 获取矩形区域
speed = [1,1] #设置移动的X轴、Y轴距离
clock = pygame.time.Clock() #设置时钟
soundwav=pygame.mixer.Sound("shenyin.wav") #filename.wav文件名
# 死循环确保窗口一直显示
while True:
clock.tick(240) #每秒执行60次
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
ballrect = ballrect.move(speed) #移动小球
#碰到左右边缘
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
#碰到上下边缘
if ballrect.top < 0 or ballrect.right > height:
speed[1] = -speed[1]
screen.fill(color) # 填充颜色(设置为0,执不执行这行代码都一样)
screen.blit(ball, ballrect) # 将图片画到窗口上
pygame.display.flip() # 更新全部显示
soundwav.play()
pygame.quit() # 退出pygame
成果展示:

参考:https://www.jianshu.com/p/cb146af64f05