前言
基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。
我们的下一步目标是完成python crash course中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。
私信我发送消息python资料,领取python crash course中文版PDF。
Pygame
Pygame是一个开源的Python多媒体开发库,专门用于开发2D游戏。它是Python编程语言的一个扩展,基于 SDL (Simple DirectMedia Layer) 库,提供了丰富的功能来处理图形、声音、事件处理等游戏开发所需的基本要素,使得创建游戏变得更加简单直接。
图形绘制
主要使用pygame.draw模块进行基本图形的绘制,包括矩形,圆形,多边形等。
Surface
Surface 是一个非常核心的概念。Surface 对象可以被理解为一个二维的矩形画布,它有自己的像素格式和尺寸。这个对象允许你在其上绘制图像、图形、文本等内容,并且可以与其他 Surface 对象进行组合或层叠,以构建复杂的游戏画面。
图形绘制的操作,都需要在这个对象上进行。
Surface 对象具有以下特性:
- 像素访问:你可以直接访问 Surface 上的每一个像素,进行读取或修改。
- 绘制功能:Surface 提供了多种方法来在上面绘制图形,如 draw.rect(), draw.circle(), draw.line() 等。
- 转换:你可以使用 convert() 或 convert_alpha() 方法来改变 Surface 的像素格式,以优化性能或支持透明度。
- 混合:Surface 支持像素级别的混合操作,可以将一个 Surface 的颜色与另一个 Surface 的颜色混合。
- 复制和剪切:你可以从一个 Surface 复制部分区域到另一个 Surface 上,或者剪切并粘贴。
- 位图操作:Surface 支持位图操作,如翻转(flip())和旋转(rotate())。
- blit:这是 Surface 最常用的方法之一,用于将一个 Surface 的内容绘制到另一个 Surface 上。
- 透明度:Surface 可以设置全局的 alpha 透明度,也可以在绘制时指定局部的透明度。
在 Pygame 中,最常见的 Surface 类型是 Display Surface,它是游戏主窗口的 Surface。你可以使用 pygame.display.set_mode() 来创建一个 Display Surface。此外,你还可以使用 pygame.Surface() 构造函数来创建任意大小和格式的 Surface 对象。
我们的图形绘制,可以简单理解为在主窗口的Surface基础上堆叠自己定义的子Surface。
下面我们通过简单的一个示例,执行了解一下。
import pygame
# 初始化 Pygame
pygame.init()
# 创建一个 Display Surface, 也就是我们说的主窗口
screen = pygame.display.set_mode((800, 600))
# 创建一个额外的 Surface,这个就是我们堆叠在主窗口中的子画布对象
extra_surface = pygame.Surface((200, 100))
# 在 extra_surface 上绘制一个矩形,这些参数在图形绘制里面会讲,这里主要理解Surface堆叠
pygame.draw.rect(extra_surface, (255, 0, 0), (0, 0, 100, 50))
# 将 extra_surface 绘制到 screen (主窗口) 上
screen.blit(extra_surface, (300, 200))
# 更新屏幕显示
pygame.display.flip()
# 点击关闭退出程序,这个后面再讲,代码可以先写上。
while True:
for event in pygame.event.get

最低0.47元/天 解锁文章
1523

被折叠的 条评论
为什么被折叠?



