python中pygame是个什么模块_Pygame的⼏个模块
这篇博客主要是从功能上介绍⼏个Pygame的模块,没有深⼊到代码细节。⼤部分内容来⾃《Python基础教程》。
pygame
pygame模块会⾃动导⼊其他Pygame模块,所以如果⽤了 import pygame,就能⾃动访问其他模块,⽐如pygame.display等。
pygame模块包括Surface函数(和⼀些其他⼯具),它可以返回⼀个新的Surface对象。Surface对象就是⼀个有确定尺⼨的空图像,可以⽤来进⾏图像绘制和移动。移动(blit⽅法)只意味着将内容从⼀个表⾯转移到另外⼀个表⾯上⾯。单词blit是从属于block transfer的缩写BLT 衍⽣⽽来。
init函数式Pygame游戏的核⼼。它必须在进⼊游戏的主事件循环之前调⽤,它会⾃动初始化其他所有模块。
如果需要捕捉Pygame特有的错误时,还需要error类。
pygame.locals
pygame.locals模块包括在你⾃⼰的模块作⽤域内使⽤的名字(变量),还包括事件类型、键和视频模式等的名字。在导⼊所有内容(from pygame.locals import *)时它⽤起来是很安全的。如果你知道⾃⼰需要的内容,也可以导⼊更加具体的内容(⽐如 from pygame.locals import FULLSEREEN)。
pygame.display
pygame.display模块包括处理Pygame显⽰⽅式的函数,其中包括普通窗⼝和全屏模式。⽐如有这些函数:
flip:更新显⽰。⼀般来说,当修改当前屏幕的时候需要经过两个步骤。⾸先,需要对get_surface函数返回的Surface对象进⾏所有需要的修改。然后调⽤pygame.display.flip更新显⽰  以反映你的修改。
update:在只想更新屏幕⼀部分的时候使⽤update函数,⽽不是flip函数。它可以从RenderUpdates类的draw⽅法中返回的矩形列表⼀起使⽤。
set_mode:设定显⽰的类型和尺⼨。会返回⼀个Surface对象,代表了在桌⾯上出现的那个窗⼝,三个参数第⼀个为元祖,代表分 辨率(必须);第⼆个是⼀个标志位,具体意思见下  表,如果不⽤什么特性,就指定0;第三个为⾊深。
标志位功能
FULLSCREEN
创建⼀个全屏窗⼝
DOUBLEBUF
创建⼀个“双缓冲”窗⼝,建议在HWSURFACE或者OPENGL时使⽤
HWSURFACE
创建⼀个硬件加速的窗⼝,必须和FULLSCREEN同时使⽤
OPENGL
创建⼀个OPENGL渲染的窗⼝
RESIZABLE
创建⼀个可以改变⼤⼩的窗⼝
NOFRAME
创建⼀个没有边框的窗⼝
set_caption:设定Pygame程序的标题,当游戏以窗⼝模式运⾏时,显⽰为窗⼝的标题。
get_surface:在调⽤pygame.display.flip或者pygame.display.blit前返回⼀个可⽤于画图的Surface对象。
pygame.font
pygame.font模块包括Font函数。字体对象⽤于表现不同的字体,可以⽤于将⽂本⽣成为可以再Pygame中⽤作普通图像的图像。
pygame.sprite
pygame.sprite模块包括两个⾮常重要的类:Sprite和Group。
Sprite类是所有可视游戏对象的基类,有过游戏编程经验甚⾄只是玩过游戏的⼈应该都知道“精灵”这个词,其实Sprite就是精灵。为了实现⾃⼰的游戏对象,需要⼦类化Sprite,覆盖它的构造函数以设定image和rect属性(决定Sprite的外观和放置的位置),再覆盖update⽅法,在Sprite需要更新的时候可以调⽤。
update是什么
Group类的实例(和它的⼦类)⽤作Sprite对象的容器。⼀般来说,使⽤group类还是不错的作法。在⼀些简单的游戏中,只要创建名为sprites或者allsprites或者其他类似的组,然后将所有的Sprite对象添加到上⾯即可。当调⽤Group对象的update⽅法时,它就会⾃动调⽤所有Sprite对象的update⽅法。Group对象的clear⽅法⽤于清理它包含的所有Sprite对象(使⽤回调函数实现清理),draw⽅法可以⽤于绘制所有的Sprite对象。
关于⿏标的模块,可以设置参数、获取信息等。如可以使⽤use.set_visible来设置光标是隐藏还是可见,⽤
<_pos来获取⿏标的位置。
pygame.event
pygame.event模块会追踪⿏标单击、⿏标移动、按键按下和释放等事件。使⽤可以获取最近事件列表。
pygame.image
这个模块⽤于处理保存在GIF、PNG或JPEG等⽂件内的图像。pygame.image.load函数⽤来读取图像⽂件,并且创建包括该图像的Surface对象。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。