推荐一个Pygame的宝藏博主,真的特别好,对Pygame有兴趣的朋友一定不能错过

这篇文章推荐了一篇关于Pygame的详细教程,由一位来自江南的博主撰写,对于学习和了解Pygame非常有价值。
Pygame **并不限制只能有一个图形界面对象(Surface)**,它可以同时管理多个 `Surface` 对象,包括多个窗口(在支持的情况下)和多个图像表面(如精灵、背景、文字等)。不过,Pygame 默认只支持一个主窗口(`pygame.display.set_mode()` 创建的窗口),不能直接创建多个独立窗口(除非使用特定平台扩展,如 SDL2 或 Pygame 2.0+ 的某些特性)。 ### 一、图形界面对象类型 在 Pygame 中,常见的图形界面对象包括: 1. **主窗口 Surface**: - 使用 `pygame.display.set_mode()` 创建,是游戏的主显示窗口。 - 只能有一个主窗口。 2. **其他 Surface 对象**: - 使用 `pygame.Surface((width, height))` 创建的图像表面。 - 可以有多个,用于图像绘制、图层管理、精灵、缓存等。 3. **图像 Surface**: - 通过 `pygame.image.load()` 加载的图像也是一个 Surface 对象。 4. **字体渲染 Surface**: - 使用 `pygame.font.Font.render()` 渲染的文字也是一个 Surface。 --- ### 二、多个 Surface 的使用示例 ```python import pygame pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("多个 Surface 示例") # 创建两个额外的 Surface surface1 = pygame.Surface((200, 200)) surface1.fill((255, 0, 0)) # 红色表面 surface2 = pygame.Surface((150, 150)) surface2.fill((0, 255, 0)) # 绿色表面 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill((0, 0, 0)) # 黑色背景 # 将两个 Surface 绘制到主窗口上 screen.blit(surface1, (100, 100)) screen.blit(surface2, (300, 200)) pygame.display.flip() pygame.quit() ``` 在这个例子中: - `screen` 是主窗口; - `surface1` 和 `surface2` 是两个额外的图像表面; - 使用 `blit()` 方法将它们绘制到主窗口上。 --- ### 三、关于多个窗口的限制 Pygame **默认不支持多个独立窗口**。如果你调用 `pygame.display.set_mode()` 多次,它会关闭之前的窗口并创建新的窗口。 如果你需要多个窗口,可以考虑以下方法: 1. **使用 Pygame 2.0+(基于 SDL2)**: - Pygame 2.0 支持多窗口(需启用 SDL2 支持)。 - 示例: ```python window1 = pygame.display.set_mode((640, 480), 0, 32, display=0) window2 = pygame.display.set_mode((640, 480), 0, 32, display=1) ``` 2. **使用其他库**: - 如 `tkinter`、`wxPython`、`PyQt` 等 GUI 框架与 Pygame 配合使用。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值