Pygame教程02:图片的加载+缩放+旋转+显示操作

------------★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教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值