栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Pygame 学习笔记】3.导入图片并绘制

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Pygame 学习笔记】3.导入图片并绘制

上一篇文章,我们讲解了如何用Pygame绘制图形,这篇文章,我们来讲解Pygame如何引入图片

这篇文章需要用到的素材:

0.png

我们创建一个resources文件夹,处于python文件的同一目录下,将图片存储于该文件夹中。 

先给出Pygame框架的基本代码

import pygame
from pygame.locals import *
import sys

class Game:
    def __init__(self):
        pygame.init()
        self.W,self.H=800,800
        self.screen=pygame.display.set_mode((self.W,self.H))
        pygame.display.set_caption("Window")

    def listen(self):
        for event in pygame.event.get():
            if event.type==QUIT:
                sys.exit()

    def draw(self):
        self.screen.fill((255,255,255))

    def run(self):
        while True:
            self.listen()
            self.draw()
            pygame.display.update()

if __name__ == '__main__':
    game=Game()
    game.run()

首先,我们要创建一个path常量,指向相对路径下的resources文件夹

path="resources/"

Game类初始化函数中,导入这张图片,存储与self.bg中,存储图片用到了pygame.image.load方法,传入图片路径,返回surface对象

self.bg=pygame.image.load(path+"0.png")

self.screen是屏幕,它是Surface对象,blit方法用于将物体绘制,传入两个参数,第一个为surface对象,则要绘制的物体,第二个参数可以是含有xy坐标的元组,表示物体左上角的坐标,也可以是rect对象

比如我们要把图像放置到10,10的位置,可以这样写

self.screen.blit(self.bg,(10,10))

 

如果要放置到屏幕正中间,用上面这种方法还要求出它的左上角坐标,有点麻烦,我们可以用以下方法

首先,用surface对象的get_rect方法,获取rect对象

rect=self.bg.get_rect()

并设置中心点

rect.center=self.W/2,self.H/2

这里用到了rect的参数,有以下表示位置的常用参数:

topleft:左上角xy坐标

top:最上方y坐标

topright:右上角xy坐标

left:最左边x坐标

center:中心xy坐标

centerx和centery:中心x坐标和中心y坐标

right:最右边x坐标

bottomleft:左下角xy坐标

bottom:最下方y坐标

bottomright:右下角xy坐标

x和y不强调某一精准的点,在制作飞机大战之类的游戏时,只为移动物体而不强调某一点,即可使用这两个参数

然后用blit方法绘制

self.screen.blit(self.bg,rect)

 


好了,这个就是将图片绘制到窗口的基本操作,下一篇文章,我们再深入学习,如何对图片进行放大、缩小等操作

制作不易,喜欢我的文章的话多多点赞收藏关注哦~

欢迎订阅专栏~

谢谢支持~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008734.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号