------------★Pygame系列教程★------------
Pygame教程01:初识pygame游戏模块
Pygame教程02:图片的加载+缩放+旋转+显示操作
Pygame教程03:文本显示+字体加载+transform方法
Pygame教程04:draw方法绘制矩形、多边形、圆、椭圆、弧线、直线和线条等
本篇需要掌握的知识点:
1.学习基本的使用pygame.image.load加载图像文件(如PNG、JPG等),并screen.blit放在的指定显示位置。
2.转换图像格式:使用convert()或convert_alpha()方法转换Surface对象的像素格式。convert()用于优化图像,被转换为更高效的像素格式,而convert_alpha()则用于包含透明度的图像。
3.pygame.display.flip()和pygame.display.update()区别:例如,如果你有一个游戏,其中大部分背景是静态的,而只有一小部分区域(如玩家的位置)在不断地更新,那么使用 pygame.display.update() 只更新这部分区域会比使用 pygame.display.flip() 更新整个屏幕更加高效。
# 创建一个矩形对象,表示要更新的区域
update_rect = pygame.Rect(100, 100, 200, 200) # 位置 (100, 100),大小 (200x200)
# 只更新 update_rect 指定的区域
pygame.display.update(update_rect) # 使用 update() 更新特定区域
4.pygame.transform模块提供了一些用于处理和变换图像的功能。这些功能包括缩放、旋转、裁剪等。
pygame.transform.scale()将图片缩放至指定的大小,并返回一个新的 Surface对象。
pygame.transform.rotate()将图片旋转至指定的角度。
pygame.transform.rotozoom()以角度旋转图像,同时将图像缩小或放大至指定的倍数。
pygame.transform.flip()函数来翻转图像。这个函数接受原始Surface对象和一个布尔值元组作为参数,用于指定是否在水平或垂直方向上翻转图像。
# 加载图像
image_path = 'path_to_your_image.png'
image_surface = pygame.image.load(image_path)
# 水平翻转图像
flipped_horizontally = pygame.transform.flip(image_surface, True, False)
# 垂直翻转图像
flipped_vertically = pygame.transform.flip(image_surface, False, True)
设置图像透明度:使用set_alpha()方法设置图像的透明度。透明度值以0到255之间的整数表示,其中0表示完全透明,255表示完全不透明。
# 加载图像
image_path = 'path_to_your_image.png'
image_surface = pygame.image.load(image_path)
# 设置图像的透明度为50%(半透明)
image_surface.set_alpha(128)
# @Author : 小红牛
# 微信公众号:WdPython
import pygame
# 0.初始化Pygame
pygame.init()
# 设置窗口的大小
screen = pygame.display.set_mode((600, 400))
# 设置窗口的标题
pygame.display.set_caption('Pygame图像显示的操作')
# 1.加载图像
# 替换为你的图像文件路径
image_surface = pygame.image.load('哪吒.png')
# 2.转换图像格式以优化性能
image = image_surface.convert()
# image = image_surface.convert_alpha()
# 3.图像显示到屏幕左上角 (0, 0)指定位置
screen.blit(image, (0, 0))
# 4. 操作图片,获取宽高
w, h = image.get_size()
print('原图宽高: ', w, h)
# 图片在右下角显示,屏幕的宽度-图宽
screen.blit(image, (600-w, 400-h))
# 5.缩放图像,scale(目标对象,缩放大小)
scaled_surface = pygame.transform.scale(image, (80, 80))
screen.blit(scaled_surface, (200, 60))
# 6.旋转图像
# rotozoom(img目标对象, 旋转角度, 缩放大小)
rotozoom_surface = pygame.transform.rotozoom(image, 30, 0.8)
screen.blit(rotozoom_surface, (400, 20))
# 倒立原图
rotozoom_surface1 = pygame.transform.rotozoom(image, 180, 1)
screen.blit(rotozoom_surface1, (0, 180))
# 7.更新显示页面
pygame.display.flip()
# 游戏主循环
while True:
# 处理事件队列
for event in pygame.event.get():
if event.type == pygame.QUIT: # 如果用户点击了关闭按钮
exit()
完毕!!感谢您的收看
----------★★历史博文集合★★----------
Python入门篇 进阶篇 视频教程 Py安装
py项目 Python模块 Python爬虫 Json
Xpath 正则表达式 Selenium Etree Css
Gui程序开发 Tkinter Pyqt5 列表元组字典
数据可视化 matplotlib 词云图 Pyecharts
海龟画图 Pandas Bug处理 电脑小知识
office自动化办公 编程工具 NumPy Pygame