上一篇文章,我们讲解了如何用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)
好了,这个就是将图片绘制到窗口的基本操作,下一篇文章,我们再深入学习,如何对图片进行放大、缩小等操作
制作不易,喜欢我的文章的话多多点赞收藏关注哦~
欢迎订阅专栏~文章来源:https://www.toymoban.com/news/detail-568085.html
谢谢支持~文章来源地址https://www.toymoban.com/news/detail-568085.html
到了这里,关于【Pygame 学习笔记】3.导入图片并绘制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!