Pygame(十四)图像变换
前情提要
本节提要
前言
上一节我们学习了如何从文件加载图像到pygame中以便我们将游戏做的更加精致,更加受人喜欢.
但是有些时候,我们可能需要对文件加载进来的图片进行一些处理,以达到更好的效果.
比如,我们在制作人物运动的时候,朝左走的人和朝右走的人是左右镜像的.如果我们还是用两个文件的图片的话,就会造成资源的浪费.
不仅浪费有限的存储空间,还浪费人力,物力去准备这双重的资源.如果我们能够实现这样的镜象效果,就可以达成以上的节省目标.
内容详情
翻转
翻转分左右翻转与上下翻转
两两组合可以实现以下几种:
- 不翻转
- 左右翻转
- 上下翻转
- 上下左右都翻转
new_img = pygame.transform.flip(old_img, xbool, ybool)
参数说明:
- old_img:待翻转的surfcae对象
- xbool:是否左右(水平)翻转, True:翻转, False:不翻转
- ybool:是否上下(垂直)翻转,True:翻转, False:不翻转
–>产生一个新的surface对象
示例:
- 不翻转
def flip():
'''翻转'''
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("图像变换")
img = pygame.image.load("img.jpg").convert() # 原图
none_flip_img = pygame.transform.flip(img, False, False) # 不翻转的图
width = img.get_width() # 获取img的宽 height = img.get_height() # 获取img的高
screen.blit(img, (0, 0)) # 绘制原图
screen.blit(none_flip_img, (width, 0)) # 绘制新图
pygame.display.update()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
- 左右翻转
def flip():
'''翻转'''
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("图像变换")
img = pygame.image.load("img.jpg").convert() # 原图
none_flip_img = pygame.transform.flip(img, False, False) # 不翻转的图
x_flip_img = pygame.transform.flip(img, True, False) # 左右翻
width = img.get_width() # 获取img的宽度
screen.blit