5.pygame图片显示

前言:

因为我们这一节课要学习和图片有关的,我就先给出示例图片了

 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()

下节课我们会学习如何让图片移动!

拜拜!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值