Pygame 概述(简介、历史、安装、设置、函数、语法)

Pygame 概述(简介、历史、安装、设置、函数、语法)

本文目录:

零、时光宝盒

一、Pygame 简介

二、Pygame历史

三、Pygame 安装

四、pygame路径参数

五、导入和初始化

5.1、导入

5.2、初始化 PyGame

5.3、退出

六、pygame函数、语法

七、参考资料


零、时光宝盒

2ab463de26a541818271efa176656ae6.png

《存在》原唱:汪峰
多少人走着却困在原地,多少人活着却如同死去
多少人爱着却好似分离,多少人笑着却满含泪滴
谁知道我们该去向何处,谁明白生命已变为何物
是否找个借口继续苟活,或是展翅高飞保持愤怒
我该如何存在
多少次荣耀却感觉屈辱,多少次狂喜却倍受痛楚
多少次幸福却心如刀绞,多少次灿烂却失魂落魄
谁知道我们该梦归何处,谁明白尊严已沦为何物
是否找个理由随波逐流,或是勇敢前行挣脱牢笼
我该如何存在
谁知道我们该去向何处,谁明白生命已变为何物
是否找个借口继续苟活,或是展翅高飞保持愤怒
谁知道我们该梦归何处,谁明白尊严已沦为何物
是否找个理由随波逐流,或是勇敢前行挣脱牢笼
我该如何存在

  《存在》这首歌是由汪峰作词、作曲并演唱的,该曲于2011年10月17日单曲首发,但我却是最近几年才第一次听到,听的还是翻唱版,却被这首歌打动,我们的处境正如此。

  有些事情发生了,但你没有任何证据,也无从求助,我指的不是我个人发生的事情,是很多人正在经历的事情(他们或者感觉到异常,或者什么也不知道),每次想到这些正在受苦的人,我心里都压抑得难受,却不知自己还可以做什么,我只是个普通的凡人。。。看得懂我写什么的,互勉!

      逆境清醒

2024.12.26 凌晨1:26

7f8eafc867aa425cab7d368ee0eb4dd8.gif

一、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
  如果它能正常运行,您就可以开始了。这是一个游戏的例子:

e99086a85c6e43b281e3c0961d6ce078.png

四、pygame路径参数

03c2c1cfc4094b58bf44b5a8735da286.png

  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.BufferProxypygame 的缓冲区代理
An array protocol view of surface pixels
表面像素的数组协议视图
pygame.camera相机使用
pygame.cdrom音频CD控制
pygame.cursors

光标资源

Loading and compiling cursor images.
加载和编译光标图像。

pygame.Colorpygame 的颜色
Color representation.
颜色表示。
pygame.display

控制显示窗口和屏幕

配置表面显示。
Configure the display surface.

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 模块使用的各种程序。

pygame.fastevent与多线程的事件和队列交互
pygame.font加载和渲染字体
Loading and rendering TrueType fonts.
加载和呈现 TrueType 字体。
pygame.freetype

加载和渲染计算机字体

pygame.freetype
Enhanced pygame module for loading and rendering font faces.
增强了 pygame 模块,用于加载和渲染字体。

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.localsPygame 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

基本的游戏对象类
Higher level objects to represent game images.
表示游戏图像的更高级别对象。

pygame.surfarray

使用数组接口访问图像表面像素数据
Manipulate image pixel data.
处理图像像素数据。

pygame.SurfaceObjects for images and the screen.
图像和屏幕的对象。
pygame.tests

单元测试套件包

Test pygame.
测试 pygame。

pygame.time监控时间
Manage timing and framerate.
管理计时和帧速率。
pygame.transform

转换图面
Resize and move images.
调整图像大小和移动图像。

pygame.RectFlexible 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

 ✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆


  推荐阅读:

逆境清醒文章总目录表

27d5b50d93a089da35ee1a28905f9719.jpeg​​​​

c64d8b4d0b6842ebe1196c0b1e3fba51.jpeg​​​​

a136a43cd0015088d4ce37b1bb653533.jpeg​​​​

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

0f92b28e915ca3cc26cfaaf47c5fc62d.jpeg

5d2b51be3e7e932be95355088e17d524.jpeg

3cf3fe3c1a186bfcbf12d4755b8950ae.jpeg

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

849b7a72434213407c862c8f8e071a22.png

9412a31659ba6db83d806c3f354dd1c0.png

fb29a865f75af8352dca5e3d56a09004.png

语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

逆境清醒

637c349e8206c0651d1f2751ba128912.png

ce6afe00fdaa41f8aff1cf830e23f1ac.png7364ac22aa4f40899b6d7597ad7d91b6.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

PyCharm 社区版(2024.2.3)安装、配置、创建项目

pycharm汉化插件无法使用也无法卸载的解决方法

ec9793633e16de7b52fbf0b74ecfa2f3.png

1b1579176220a88ae2a53758f91a41d6.pngc97237f650c44d0da960e88c37fc921d.png
Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

开源数据科学平台Anaconda简介

最新版本Anaconda 2024.06-1安装设置

6e420cca6a1313b93948785f689f5723.png

1da3f182e081ad8f3cfcf53013909b8b.png

ca733c1a99c6457a762d0e503855ce79.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

f92dfeb72ec683025a63db2fe8a26492.png

1b2a866ebb074a1e5859dad42c435d5c.jpeg

8207b63755bf37b10807a046080f14df.png

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

b97d56fe7e3ce6234cb182ad86fef4ed.jpeg

6871f222e7db3f8ce83336ad50311c3a.png

b89ed1147e8a76e6c64b812d65e8f2ef.png

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

7090a17485b11d9da69e37e5756c6910.png

50313523c8c19f29270fb1110fe66ae9.png

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

4c77c7a60782637db9e27b3deec7abee.png

c397ed3a22c7885194eb92b5b3883322.png

a18fbd27f15eaa98f0bb5a4fed8cbd8b.png

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

36e2af3bf474c59b9c430b223417793b.png

542dbf91cfafa23e1ccdee94a7b22397.png

175f4dd5b5bb4e46915f57c9f853f001.jpeg

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

【中秋月饼系列】2024年立体月饼新鲜出炉----python画月饼(1)附完整代码

逆境清醒

68b0f4704053ab870c16bb4e37897d63.png

25ff4b8d741f0942c50dd96b7e866386.jpeg

59bb0955631256520f0edd17f8304669.jpeg

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2024年12月多家权威机构____编程语言排行榜__薪酬状况

7dda70990181a20a430cc7b13dc9d8aa.png

a1fea2de0187913a4cdb18473c512c55.png

96e1df3760ce3017026da2d1de069869.png

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

逆境清醒

cc75265b98b9475cb68deece4f3def19.png

用代码画万圣节南瓜(python,MATLAB,html css)

8fe676a8d0404267af522df861a0a904.gif

CSS3 动画相关属性实例大全

49148faa34d949e999b8f0976a1fa8cb.png

CSS @规则(At-rules)系列详解

fa753f11d26d967646a85b78b53dc703.png​​​​​​​

71e3b727d1634951aeed4e66cc536fe1.jpega1632ea3af784e47a1673144e360272e.gif
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

圣诞节系列代码专辑(目录)

Markdown 语法详解大全(超级版)

4290a52c20eee861ee159e17659342f5.png​​​​​​​

b126b976989a1e4f1ae40867407e8f4d.png​​​​​​​

15f065b7e46b238db1e7382f70fd7076.png​​​​​​​

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

f3a00b9bf85e8d36c21d8e9785f43a53.png​​​​​​​

1f143789d9652fd35c1fabf11b6f149c.png​​​​​​​

2c8047a9f87aa22a8abe57ad0081b1d9.png​​​​​​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

逆境清醒

a01e7c6663c27936b3c174265db14012.png​​​​​​​

6d12eed561af36157625a07b771f9b0b.png​​​​​​​

af9dcebc4110cf5b9a012a3ef7d268fe.png​​​​​​​

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

逆境清醒

987cd5bf2ecef39fd782b5d64f0c3cbf.png7bd749109565caaad3799224fad815a4.jpeg

信息系统项目管理师试题

云计算

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆境清醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值