pygame模块
只是熟悉一下pygame这个大佬眼里的玩具模块(瑟瑟发抖)。
pygame模块中主要有:
控制显示的display模块、用于图像控制的surface模块、用户画出各种图形形状的draw模块以及对surface对象进行操作(比如翻转、剪裁等操作)的transfrom模块、pygame中内嵌的矩形rect对象,这里不同于画图中的形状,更重要的是rect对象可以存放图形的矩形坐标。还有font模块,主要是对文本一些设置,还有mouse关于鼠标指针的坐标,还有在交互过程中的event事件处理操作。
模块pygame.display
- display.set_mode(resolution,flags,depth)函数
1 | import pygame |
display.get_surface()函数,返回对当前设置的Surface的引用。如果没有则返回None
display.flip() 在屏幕上更新完整的Surface对象
display.update()函数
像是flip()函数的用于软件显示的优化版本。允许只更新一部分屏幕,而不是整个区域。如果没有传递参数,会像display.flip()一样更新全部区域。参数类型有两种:
display.update(rectangle=None)
display.update(rectangle_list)
display.update()的调用不能在pygame.OPENGL上使用,否则会产生异常。
模块pygame.draw
该模块中大多数函数都具有参数width,用于代表绘制外边缘的厚度,如果为0则填满整个区域。除此之外大多函数还具有color参数用来接受RGB三元组。
pygame.draw.rect(Surface,color,Rect,width=0) 返回Rect
在Surface上绘制rect。Surface.fill()也适用于绘制填充的矩形。实际上,Surface.fill()可以在一些平台上使用软件和硬件显示模式进行加速。
pygame.draw.circle(Surface,color,pos,radius,width=0) ->Rect
pygame.draw.ellipse(Surface,color,Rect,width=0) ->Rect
在Surface上绘制椭圆,Rect确定椭圆的大小位置等信息。
pygame.draw.polygon(Surface,color,pointlist,width=0) -> Rect
在Surface上绘制多边形。pointlist参数是多边形的顶点集。
模块pygame.event
pygame通过事件队列来处理事件消息。队列的输入依赖与display模块。如果display模块没被初始化,事件队列就不会真正起作用。
event.type:
QUIT
ACTIVEEVENT
KEYDOWN
KEYUP
MOUSEMOTION
MOUSEBUTTONUP
MOUSEBUTTONDOWN
JOYAXISMOTION
JOYBALLMOTION
JOYHATMOTION
JOYBUTTONUP
JOYBUTTONDOWN
VIDEORESIZE
VIDEOEXPOSE
USEREVENT
当键盘按钮被按下并释放时,事件队列获取pygame.KEYDOWN和 pygame.KEYUP事件。这两个事件都有一个key属性,它是一个表示键盘上每个键key的整数ID。event.key:
K_UP 向上箭头
K_DOWN 向下箭头
K_RIGHT 右箭头
K_LEFT 左箭头pygame.event.get() ->Eventlist
pygame.event.get(type) ->Evenlist(类型均为参数type)
pygame.event.get(typelist) ->Eventlist
获得所有消息并将其从队列消除。
模块pygame.font
用于加载和渲染字体的pygame模块
pygame.font.init - 初始化字体模块
pygame.font.quit - 取消初始化字体模块
pygame.font.get_init - 如果字体模块已初始化,则为true
pygame.font.get_default_font - 获取默认字体的文件名
pygame.font.get_fonts - 获取所有可用的字体
pygame.font.match_font - 在系统上找到一个特定的字体
pygame.font.SysFont - 从系统字体创建一个Font对象
pygame.font.Font - 从文件创建一个新的Font对象
pygame.font.SysFont(name,size,bold=False,italic=False) ->Font
返回从系统字体加载的新Font对象。bold表示粗体,italic表示斜体
Font.render(text,antialias,color,background=None) -> Surface
这将创建一个新的Surface,并在其上呈现指定的文本。pygame没有办法直接在现有Surface上绘制文本:相反,您必须使用Font.render()创建文本的图像(Surface),然后将此图像粘贴到另一个Surface上。
文本只能是一行:不显示换行符。空字符(’x00’)引发TypeError。Unicode和char(字节)字符串都被接受。对于Unicode字符串,只能识别UCS-2字符(’u0001’到’uFFFF’)。任何更大的提出了一个UnicodeError。对于字符串,LATIN1假定编码。antialias参数是布尔值:如果为true,则字符将具有平滑边缘。颜色参数是文本的颜色[例如:蓝色的(0,0,255)]。可选的背景参数是用于文本背景的颜色。如果没有背景通过,文字以外的区域将是透明的。
模块pygame.image
- pygame.image.load(image_name) ->Surface
支持的图片格式有jpg,png,gif(非动画),bmp等
模块pygame.Surface
pygame中代表images的对象
- pygame.Surface.blit(source,destination,area=None,special_flags=0)->Rect
Draws a source Surface onto this Surface. The draw can be positioned with the destination argument. Destination can either be pair of coordinates representing the upper left corner of the source. A Rect can also be passed as the destination and the topleft corner of the rectangle will be used as the position for the blit. The size of the destination rectangle does not effect the blit.
An optional area rectangle can be passed as well. This represents a smaller portion of the source Surface to draw.
模块pygame.sprite
- pygame.sprite.Sprite 为可见的游戏对象的基类