python--pygame入门--2.2--基础使用--理解图像并实现图像绘制
·
python–pygame入门–2.2–基础使用–理解图像并实现图像绘制
1、介绍
- 在游戏中,能够看到的 游戏元素 大多都是 图像
- 图像文件 初始是保存在磁盘上的,如果需要使用,第一步 就需要 被加载到内存
- 要在屏幕上 看到某一个图像的内容,需要按照三个步骤:
- 使用
pygame.image.load()加载图像的数据 - 使用 游戏屏幕 对象,调用
blit方法 将图像绘制到指定位置 - 调用
pygame.display.update()方法更新整个屏幕的显示,让我们看到绘制的结果
- 使用

2、绘制图像
2.1、绘制背景图像
需求
- 加载
background.png创建背景 - 将 背景 绘制在屏幕的
(0, 0)位置 - 调用屏幕更新显示背景图像
# --------------绘制背景图像--------------
# 1> 加载图像
bg = pygame.image.load("../../resource/image/background.png")
# 2> 绘制在屏幕
screen.blit(bg, (0, 0))
# 3> 更新显示
pygame.display.update()
# 导入pygame模块
import pygame
# 导入并初始化所有 `pygame` 模块,使用其他模块之前,必须先调用 `init` 方法
pygame.init()
# 英雄的指标
hero_rect = pygame.Rect(100, 500, 120, 126)
# 创建游戏主窗口
screen = pygame.display.set_mode((480, 700))
# --------------绘制背景图像--------------
# 1> 加载图像
bg = pygame.image.load("../../resource/image/background.png")
# 2> 绘制在屏幕
screen.blit(bg, (0, 0))
# 3> 更新显示
pygame.display.update()
# 游戏循环
while True:
pass
# 卸载所有 `pygame` 模块,在游戏结束之前调用!
pygame.quit()

2.2、绘制英雄图像
需求
- 加载
me1.png创建英雄飞机 - 将 英雄飞机 绘制在屏幕的
(200, 500)位置 - 调用屏幕更新显示飞机图像
# --------------绘制英雄图像--------------
# 1> 加载图像
hero = pygame.image.load("../../resource/image/me1.png")
# 2> 绘制在屏幕
screen.blit(hero, (200, 500))
# 3> 更新显示
pygame.display.update()
# 导入pygame模块
import pygame
# 导入并初始化所有 `pygame` 模块,使用其他模块之前,必须先调用 `init` 方法
pygame.init()
# 英雄的指标
hero_rect = pygame.Rect(100, 500, 120, 126)
# 创建游戏主窗口
screen = pygame.display.set_mode((480, 700))
# --------------绘制背景图像--------------
# 1> 加载图像
bg = pygame.image.load("../../resource/image/background.png")
# 2> 绘制在屏幕
screen.blit(bg, (0, 0))
# 3> 更新显示
pygame.display.update()
# --------------绘制英雄图像--------------
# 1> 加载图像
hero = pygame.image.load("../../resource/image/me1.png")
# 2> 绘制在屏幕
screen.blit(hero, (200, 500))
# 3> 更新显示
pygame.display.update()
# 游戏循环
while True:
pass
# 卸载所有 `pygame` 模块,在游戏结束之前调用!
pygame.quit()

3、透明图像
png格式的图像是支持 透明 的- 在绘制图像时,透明区域 不会显示任何内容
- 但是如果下方已经有内容,会 透过 透明区域 显示出来
4、update() 方法的作用
可以在
screen对象完成 所有blit方法之后,统一调用一次display.update方法,同样可以在屏幕上 看到最终的绘制结果
- 使用
display.set_mode()创建的screen对象 是一个 内存中的屏幕数据对象- 可以理解成是 油画 的 画布
screen.blit方法可以在 画布 上绘制很多 图像- 例如:英雄、敌机、子弹…
- 这些图像 有可能 会彼此 重叠或者覆盖
display.update()会将 画布 的 最终结果 绘制在屏幕上,这样可以 提高屏幕绘制效率,增加游戏的流畅度
案例调整
# --------------绘制背景图像--------------
# 1> 加载图像
bg = pygame.image.load("../../resource/image/background.png")
# 2> 绘制在屏幕
screen.blit(bg, (0, 0))
# --------------绘制英雄图像--------------
# 1> 加载图像
hero = pygame.image.load("../../resource/image/me1.png")
# 2> 绘制在屏幕
screen.blit(hero, (200, 500))
# 3> 更新显示 - update 方法会把之前所有绘制的结果,一次性更新到屏幕窗口上
pygame.display.update()
# 导入pygame模块
import pygame
# 导入并初始化所有 `pygame` 模块,使用其他模块之前,必须先调用 `init` 方法
pygame.init()
# 英雄的指标
hero_rect = pygame.Rect(100, 500, 120, 126)
# 创建游戏主窗口
screen = pygame.display.set_mode((480, 700))
# --------------绘制背景图像--------------
# 1> 加载图像
bg = pygame.image.load("../../resource/image/background.png")
# 2> 绘制在屏幕
screen.blit(bg, (0, 0))
# --------------绘制英雄图像--------------
# 1> 加载图像
hero = pygame.image.load("../../resource/image/me1.png")
# 2> 绘制在屏幕
screen.blit(hero, (200, 500))
# 3> 更新显示 - update 方法会把之前所有绘制的结果,一次性更新到屏幕窗口上
pygame.display.update()
# 游戏循环
while True:
pass
# 卸载所有 `pygame` 模块,在游戏结束之前调用!
pygame.quit()

更多推荐
所有评论(0)