一、图像
要在屏幕上 看到某一个图像的内容,需要按照三个步骤
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