介绍
在游戏中能够看到的游戏元素大都是图像
图像文件初始是保存在磁盘上的,如果需要使用,第一步就需要被加载到内存
要在屏幕上看到某一个图像的内容,需要按照三个步骤
- 使用pygame.image.load()加载图像属性
- 使用游戏屏幕对象,调用blit方法将图像绘制到指定位置
- 调用pygame.display.update()方法更新整个屏幕的显示
![](https://i-blog.csdnimg.cn/blog_migrate/26bf916e32dfd7bc5aba62bc2a2b87fc.jpeg)
绘制背景图像
import pygame
pygame.init()
# 创建游戏窗口
screen = pygame.display.set_mode((480,700))
# 绘制背景图像
# 加载图像数据
background = pygame.image.load('./images/background.png')
# 使用blit给对应窗口绘制图像,参数:图像数据,图像位置
screen.blit(background,(0,0))
# 更新图像显示
pygame.display.update()
runing = True
while runing:
for event in pygame.event.get():
if event.type == pygame.QUIT:
runing = False
pygame.quit()
![](https://i-blog.csdnimg.cn/blog_migrate/67ba9cc346035ec018d96d7449499d49.jpeg)
绘制英雄图像
1.加载图片创建英雄飞机
2.将英雄飞机绘制在屏幕的(200,500)的位置
3.调用屏幕更新显示图像飞机
# -*- coding: utf-8 -*-
# @Time: 2022/5/19 23:45
# @Author: LiQi
# @Describe:
import pygame
pygame.init()
# 创建游戏窗口
screen = pygame.display.set_mode((480,700))
# 绘制背景图像
# 加载图像数据
background = pygame.image.load('./images/background.png')
# 使用blit给对应窗口绘制图像,参数:图像数据,图像位置
screen.blit(background,(0,0))
# 更新图像显示
pygame.display.update()
# 绘制英雄图像
hero = pygame.image.load('./images/me1.png')
screen.blit(hero,(200,500))
pygame.display.update()
runing = True
while runing:
for event in pygame.event.get():
if event.type == pygame.QUIT:
runing = False
pygame.quit()
![](https://i-blog.csdnimg.cn/blog_migrate/3fb52cc26abdf1d879868d0923e929fd.jpeg)
透明图像
png格式的图像是支持透明的
在绘制图像时,透明区域不会显示任何内容
如果下方已有内容,透过透明区域显示出来
如下图小格子区域就是透明区域,当透明区域和背景图重合时,会把背景区域显示出来
![](https://i-blog.csdnimg.cn/blog_migrate/efb6866254b8711f3528ffd6b1822257.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/d012ddfd65fe95107b4e45b8d1912bda.jpeg)
update()方法的作用
可以在screen对象完成所有的blit方法之后,统一调用一次update方法,同样可以看到最终的显示效果
使用set_mode创建的screen对象是一个内存中的屏幕数据对象可以理解成油画的画布
screen.bilt方法可以在画布上绘制很多图像,例如英雄、敌机、子弹
update会将画布的最终效果绘制屏幕上
游戏中的动画实现原理
跟电影的原理类型,游戏中的动画效果,本质上是快速的在屏幕上绘制图像
一般在电脑上每秒绘制60次,就能达到非常连续高品质的动画效果
每次绘制的结果被称为帧Frame