Pygame 概述(简介、历史、安装、设置、函数、语法)
本文目录:
零、时光宝盒
《存在》原唱:汪峰
多少人走着却困在原地,多少人活着却如同死去
多少人爱着却好似分离,多少人笑着却满含泪滴
谁知道我们该去向何处,谁明白生命已变为何物
是否找个借口继续苟活,或是展翅高飞保持愤怒
我该如何存在
多少次荣耀却感觉屈辱,多少次狂喜却倍受痛楚
多少次幸福却心如刀绞,多少次灿烂却失魂落魄
谁知道我们该梦归何处,谁明白尊严已沦为何物
是否找个理由随波逐流,或是勇敢前行挣脱牢笼
我该如何存在
谁知道我们该去向何处,谁明白生命已变为何物
是否找个借口继续苟活,或是展翅高飞保持愤怒
谁知道我们该梦归何处,谁明白尊严已沦为何物
是否找个理由随波逐流,或是勇敢前行挣脱牢笼
我该如何存在
《存在》这首歌是由汪峰作词、作曲并演唱的,该曲于2011年10月17日单曲首发,但我却是最近几年才第一次听到,听的还是翻唱版,却被这首歌打动,我们的处境正如此。
有些事情发生了,但你没有任何证据,也无从求助,我指的不是我个人发生的事情,是很多人正在经历的事情(他们或者感觉到异常,或者什么也不知道),每次想到这些正在受苦的人,我心里都压抑得难受,却不知自己还可以做什么,我只是个普通的凡人。。。看得懂我写什么的,互勉!
逆境清醒
2024.12.26 凌晨1:26
一、Pygame 简介
Pygame 是一组专为编写游戏而设计的 Python 模块。它是写在顶部优秀的 SDL 库。 这使您可以使用 Python 语言创建功能齐全的游戏和多媒体程序。
Pygame 具有高度的可移植性,几乎可以在以下 每个平台和操作系统。
Pygame特性
- Python最经典的2D游戏开发第三方库,也支持3D游戏开发(不建议使用Python开发3D)
- Pygame适合用于游戏逻辑验证、游戏入门及系统演示验证
- Pygame是一种游戏开发引擎,基本逻辑具有参考价值
- 使用Pygame可以开发出优秀的游戏!
- Pygame游戏可以离线使用
二、Pygame历史
Pygame 始创于 2000 年夏天。作者 Pete Shinners 是一名多年的 C 语言程序员,他发现将Python 和 SDL(即简单直接媒体层(Simple DirectMedia Layer))相结合是一个有趣的提议。
Pygame 于 2000 年 10 月启动。
六个月后,pygame 1.0 版本发布。
本文撰写时(2024.09.26),pygame版本是2.6。
三、Pygame 安装
Pygame 需要 Python。如果您还没有,可以从 python.org 下载它。建议运行最新的 python 版本,因为它通常比旧版本更快且功能更好。请记住,pygame 已放弃对 python 2 的支持。
安装 pygame 的最佳方法是使用 pip 工具(这是 python 用来安装包的工具)。请注意,这在最新版本中随 python 一起提供。
确保在选中“将 python 添加到 PATH”选项的情况下安装 python。
配置好python后,我们通过命令行方式,用python 和 pip 命令安装pygame.
我们使用 --user 标志告诉它安装到主目录中,而不是全局安装。
python3 -m pip install -U pygame --user
命令:python3 -m pip install -U pygame --user
或者,直接 pip install pygame 即可
pip install pygame
要查看它是否有效,请运行包含的示例之一:
命令:python3 -m pygame.examples.aliens
如果它能正常运行,您就可以开始了。这是一个游戏的例子:
四、pygame路径参数
pygame函数或方法接受文件路径参数,接受Unicode或字节(8位或ASCII字符)字符串。
Unicode字符串被转换为Python的默认文件系统编码,如sys.getfilesystemencoding()返回的那样。U+FFFF()以上的Unicode码点可以直接使用32位转义序列()进行编码,即使对于使用UCS-2(16位字符)Unicode类型构建的Python解释器也是如此。
字节字符串将原封不动地传递给操作系统。\uFFFF\Uxxxxxxx
路径中不允许有空字符(),从而引发异常。
如果无法对Unicode文件路径进行编码,也会引发异常。
UTF-16代理代码的处理方式取决于Python解释器。
请改用UTF-32码位和32位转义序列。
异常类型依赖于函数。\x00
五、导入和初始化
导入和初始化pygame是一个非常简单的过程。它也足够灵活,可以让你控制正在发生的事情。Pygame是一个python包中不同模块的集合。有些模块是用C编写的,有些是用python编写的。有些模块也是可选的,可能并不总是存在。
这只是对导入pygame时发生的事情的快速介绍。如需更清晰的解释,请务必查看pygame示例。
5.1、导入
首先,我们必须导入pygame包。自pygame 1.4版本以来,这已经更新得更容易了。大多数游戏都会像这样导入所有pygame。
import pygame
from pygame.locals import *
导入参数:
- 导入 pygame 模块,然后从 locals 轻松访问关键坐标
- 从那里,您在要插入 movable、sizeable 等对象的位置编写游戏代码。
这里的第一行是唯一必要的。它将所有可用的pygame模块导入到pygame包中。
第二行是可选的,它将一组有限的常量和函数放入脚本的全局命名空间中。
需要记住的一点是,有几个pygame模块是可选的。
例如,其中之一就是字体模块。当您“导入pygame”时,pygame将检查字体模块是否可用。如果字体模块可用,它将被导入为“pygame.font”。如果模块不可用,“pygame.font”将设置为“无”。这使得以后测试字体模块是否可用变得相当容易。
5.2、初始化 PyGame
在你使用pygame前,你需要初始化它。
这是一个函数调用。在调用其他 pygame 函数之前,我们总是在导入 pygame 模块后先调用 this。如果您看到一个错误,指出字体未初始化,请返回并检查您是否在一开始就忘记了 pygame.init() 插入。
命令:pygame.init()
pygame.init()
这将尝试为您初始化所有pygame模块。并非所有pygame模块都需要初始化,但这将自动初始化需要初始化的模块。您还可以手动轻松初始化每个pygame模型。例如,要仅初始化您只需调用的字体模块。
命令:pygame.font.init()
pygame.font.init()
请注意,如果使用“pygame.init()”初始化时出错,它将自动失败。当手动初始化这样的模块时,任何错误都会引发异常。任何必须初始化的模块都有一个“get_init()”函数,如果模块已经初始化,该函数将返回true。
对任何模块多次调用init()函数都是安全的。
5.3、退出
初始化的模块通常也有一个quit()函数来清理。不需要显式调用这些,因为当python完成时,pygame会干净地退出所有初始化的模块。
命令:pygame.QUIT
pygame.QUIT
六、pygame函数、语法
Top level functions to manage pygame. 管理 pygame 的顶级函数。 | |
---|---|
pygame._sdl2.touch | 用于处理触摸输入 |
pygame.BufferProxy | pygame 的缓冲区代理 An array protocol view of surface pixels 表面像素的数组协议视图 |
pygame.camera | 相机使用 |
pygame.cdrom | 音频CD控制 |
pygame.cursors | 光标资源 Loading and compiling cursor images. |
pygame.Color | pygame 的颜色 Color representation. 颜色表示。 |
pygame.display | 控制显示窗口和屏幕 配置表面显示。 |
pygame.draw | 绘制形状 Drawing simple shapes like lines and ellipses to surfaces. |
pygame.event | 与事件和队列交互 Manage the incoming events from various input devices and the windowing platform. |
pygame.examples | 示例程序模块 Various programs demonstrating the use of individual pygame modules. |
pygame.fastevent | 与多线程的事件和队列交互 |
pygame.font | 加载和渲染字体 Loading and rendering TrueType fonts. 加载和呈现 TrueType 字体。 |
pygame.freetype | 加载和渲染计算机字体 pygame.freetype |
pygame.gfxdraw | 绘制形状 Anti-aliasing draw functions. |
pygame.image | 图像传输 Loading, saving, and transferring of surfaces. |
pygame.Index | 指数索引 A list of all functions, classes, and methods in the pygame package. pygame 包中所有函数、类和方法的列表。 |
pygame.joystick | 与游戏杆、游戏手柄和轨迹球交互 Manage the joystick devices. |
pygame.key | 与键盘交互 Manage the keyboard device. |
pygame.locals | Pygame constants. Pygame 常量。 |
pygame.mask | 图像蒙版 |
pygame.math | 向量类 |
pygame.midi | 与MIDI输入输出交互 |
pygame.mixer | 加载和播放声音 Load and play sounds |
pygame.mixer.music | 控制流式音频 Play streaming music tracks. |
pygame.mouse | 与鼠标一起工作 Manage the mouse device and display. |
pygame.pixelcopy | 一般的像素数组复制 Manipulate image pixel data. |
pygame.scrap | 剪贴板支持 Native clipboard access. |
pygame.sndarray | 访问声音样本数据 Manipulate sound sample data. |
pygame.sprite | 基本的游戏对象类 |
pygame.surfarray | 使用数组接口访问图像表面像素数据 |
pygame.Surface | Objects for images and the screen. 图像和屏幕的对象。 |
pygame.tests | 单元测试套件包 Test pygame. |
pygame.time | 监控时间 Manage timing and framerate. 管理计时和帧速率。 |
pygame.transform | 转换图面 |
pygame.Rect | Flexible container for a rectangle. 矩形的灵活容器。 |
pygame 方 法、说明 | |
基本操作:初始化和退出 Pygame: | |
pygame.init(): | 初始化所有导入的 Pygame 模块。 对Pygame内部各功能模块进行初始化创建及变量设置,默认调用 |
pygame.quit(): | 卸载所有导入的 Pygame 模块 。 |
设置显示模式: | |
pygame.display.set_mode(): pygame.display.set_mode(size) | 初始化一个准备显示的窗口或屏幕 。 初始化显示窗口,第一个参数size是一个二值元组,分别表示窗口的宽度和高度 |
pygame.display.set_caption(title) | 设置显示窗口的标题内容,参数title是一个字符串类型 |
更新: | |
pygame.display.update() | 对显示窗口进行更新,默认窗口全部重绘 |
事件 | |
event.type | 获得事件类型,并逐类响应 |
pygame.event.get(): | 从事件队列中获取事件。 从Pygame的事件队列中取出事件,并从队列中删除该事件 |
pygame.QUIT: | 当用户点击窗口关闭按钮时产生的事件类型 。 |
绘图: | |
pygame.draw.rect(): | 在 Surface 对象上绘制矩形。 |
pygame.draw.circle(): | 根据圆心和半径绘制圆形。 |
pygame.draw.line(): | 绘制线段 。 |
pygame.Rect(): | 创建矩形对象,用于存储和操作矩形区域。 |
rect.colliderect(): | 检测两个矩形是否重叠 。 |
图像加载和保存: | |
pygame.image.load(): | 从文件加载新图片。 |
pygame.image.save(): | 将图像保存到磁盘上 。 |
字体和文本: | |
pygame.font.Font(): | 从系统字体库创建一个 Font 对象。 |
font.render(): | 将文本渲染为图像,可进行绘制 。 |
声音和音乐播放: | |
pygame.mixer.Sound(): | 从文件或缓冲区对象创建新的 Sound 对象。 |
sound.play(): | 开始播放声音。 |
pygame.mixer.music.play(): | 播放音乐流 。 |
时钟控制: | |
pygame.time.Clock(): | 创建时钟对象,帮助控制游戏循环的时间 。 |
精灵和精灵组: | |
pygame.sprite.Sprite(): | 创建 Sprite 对象,用于游戏中的精灵。 |
pygame.sprite.Group(): | 创建精灵组,方便对多个精灵进行操作 。 |
七、参考资料:
Pygame Front Page — pygame v2.6.0 documentation
✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆
推荐阅读:
逆境清醒文章总目录表
|
|
|
给照片换底色(python+opencv) | 猫十二分类 | 基于大模型的虚拟数字人__虚拟主播实例 |
| | |
计算机视觉__基本图像操作(显示、读取、保存) | 直方图(颜色直方图、灰度直方图) | 直方图均衡化(调节图像亮度、对比度) |
| | |
逆境清醒
逆境清醒
| | |
2024年12月多家权威机构____编程语言排行榜__薪酬状况 | ||
| | |
【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向) | ||
逆境清醒
逆境清醒
|
|
|
逆境清醒
![]() | ![]() | |