前言:
因为我们这一节课要学习和图片有关的,我就先给出示例图片了
bird.png
我们这一节课要学习图片显示及操作,在正式学习之前我们还要搭建程序框架
#导入模块
import pygame
import sys
class Game:
def __init__(self):
pygame.init()#在使用pygame之前要先初始化
self.screen = pygame.display.set_mode((800, 600))#创建一个800*600的窗口
pygame.display.set_caption("Game")#设置窗口标题为”Game“
def Listen(self):#事件监测
for event in pygame.event.get():#事件监测
if event.type == pygame.QUIT:#点“X”号退出
pygame.quit()
sys.exit()
def main(self):
while True:#程序主循环
self.Listen()
pygame.display.flip()#屏幕刷新
if __name__ == '__main__':
game = Game()
game.main()
以上就是我们程序的框架了!
我
在调用或绘制图片之前需要先导入图片,我们在Game类中的__init__初始化函数中添加如下代码
self.bird = pygame.image.load("bird.png")
这一段函数是用于加载图片的,会返回一个suface对象。其函数原形为
pygame.image.load(filename)
参数“filename”填的是文件路径,文件路径可以是绝对路径和相对路径。pygame支持的拓展图片格式包含JPG, PNG, GIF(不包括动画), PCX, TGA(未经压缩), TIF, LBM, PBM, PPM, XPM格式。
接下来我们需要绘制图片,绘制图片所使用的函数为
blit(source, dest, area=None, special_flags=0)
我们来详细解释一下:第一个参数source需要填入一个Surface对象;第二个参数dest是指图片绘制的左上角坐标,要填入一个(Width, Height)二元组;第三个参数area参数代表原Surface对象中需要绘制的区域,如果没有指定就默认绘制原Surface对象的全部。在使用时,只有前两个参数是必需的。
那么我们接下来就要在Game类的main函数在写入如下代码
self.screen.blit(self.bird, (400, 300))
现在我们就大功告成了,运行的话你应该会看的如下结果
完整代码
#导入模块
import pygame
import sys
class Game:
def __init__(self):
pygame.init()#在使用pygame之前要先初始化
self.bird = pygame.image.load("bird.png")
self.screen = pygame.display.set_mode((800, 600))#创建一个800*600的窗口
pygame.display.set_caption("Game")#设置窗口标题为”Game“
def Listen(self):#事件监测
for event in pygame.event.get():#事件监测
if event.type == pygame.QUIT:#点“X”号退出
pygame.quit()
sys.exit()
def main(self):
while True:#程序主循环
self.Listen()
self.screen.blit(self.bird, (400, 300))
pygame.display.flip()#屏幕刷新
if __name__ == '__main__':
game = Game()
game.main()
下节课我们会学习如何让图片移动!
拜拜!