Pygame库基础模块全面介绍
目录
Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)
1.安装
(使用win+r打开运行,输入cmd),接着输入以下代码
pip3 install pygame
2.使用
在使用时,先引入pygame库,然后对其进行初始化
import pygame #导入pygame库
pygame.init() #pygame库初始化
pygame.quit() #取消初始化
3.display显示模块
pygame.display.set_mode((width,height)) #创建一个窗口对象(宽高)
pygame.display.set_caption("游戏") #更改窗口的标题为游戏
pygame.display.get_surface() #获取当前显示的 Surface 对象。
pygame.display.flip() #更新整个待显示的 Surface 对象到屏幕上。(一般来说第一次更新用flip,后续更新使用update)
pygame.display.update() #更新部分软件界面显示。
pygame.display.Info() #产生一个 VideoInfo 对象,包含了显示界面的相关信息。
pygame.display.set_icon() #设置左上角的游戏图标,图标尺寸大小为 32*32。
pygame.display.iconify() #将显示的主窗口即 Surface 对象最小化,或者隐藏。
pygame.display.get_active() #当前显示界面显示在屏幕上时返回 True,如果窗口被隐藏和最小化则返回 False。
pygame.display.get_driver() #获取pygame显示后端的名称
pygame.display.toggle_fullscreen() #切换全屏显示和窗口显示
pygame.display。set_palette() #为索引显示设置显示调色板
pygame.display.set_mode((width,height)) #创建一个窗口对象(宽高)
pygame.display.set_caption("游戏") #更改窗口的标题为游戏
pygame.display.get_surface() #获取当前显示的 Surface 对象。
pygame.display.flip() #更新整个待显示的 Surface 对象到屏幕上。(一般来说第一次更新用flip,后续更新使用update)
pygame.display.update() #更新部分软件界面显示。
pygame.display.Info() #产生一个 VideoInfo 对象,包含了显示界面的相关信息。
pygame.display.set_icon() #设置左上角的游戏图标,图标尺寸大小为 32*32。
pygame.display.iconify() #将显示的主窗口即 Surface 对象最小化,或者隐藏。
pygame.display.get_active() #当前显示界面显示在屏幕上时返回 True,如果窗口被隐藏和最小化则返回 False。
pygame.display.get_driver() #获取pygame显示后端的名称
pygame.display.toggle_fullscreen() #切换全屏显示和窗口显示
pygame.display。set_palette() #为索引显示设置显示调色板
填充颜色:
import pygame
a = (0,0,0) #使用rgb表定义黑色
screen = pygame.display.set_mode((600,800))
screen.fill(a) #填充颜色
pygame.display.flip() #刷新屏幕
4.draw模块
pygame.draw.rect(surface, color, rect, width) #绘制矩形
pygame.draw.polygon(surface, color, points, width) #绘制多边形
pygame.draw.circle(surface, color, pos, radius, width=0) #根据圆心和半径绘制圆形
pygame.draw.ellipse(surface, color, Rect, width=0) #根据限定矩形绘制一个椭圆形
pygame.draw.line(surface, color, s_pos, e_pos, width=1) #绘制线段
pygame.draw.lines(surface, color, closed, pointlist, width=1) #绘制多条连续的线段
pygame.draw.aaline(surface, color, startpos, endpos, blend=1) #绘制抗锯齿的线段
pygame.draw.aalines(surface, color, closed, pointlist, blend=1) #绘制多条连续的线段
surface:游戏主窗口
color:颜色
rect:位置和尺寸大小
width:线的宽度
pos:圆心位置
radius:半径
s_pos:起始位置
e_pos:终点位置
pointlist:参数值列表
5.event模块
pygame.event.get() #从队列中获取事件 在后续获取鼠标键盘操作时可以得到应用
pygame.event.pump() #pygame内部自动处理事件
pygame.event.poll() #从队列中获取"一个"事件
pygame.event.wait() #等待并从队列中获取一个事件
pygame.event.peek() #检测某类型事件是否在队列中
pygame.event.clear()#从队列中删除所有的事件
pygame.event.Event()#创建一个新的事件对象
① event可以判断的事件
QUIT #用户按下窗口的关闭按钮
ATIVEEVENT #Pygame被激活或者隐藏
KEYDOWN #键盘按下
KEYUP #键盘放开
MOUSEMOTION #鼠标移动
MOUSEBUTTONDOWN #鼠标按下
MOUSEBUTTONUP #鼠标放开
JOYAXISMOTION #游戏手柄(Joystick or pad) 移动
JOYBALLMOTION #游戏球(Joy ball) 移动
JOYHATMOTION #游戏手柄(Joystick) 移动
JOYBUTTONDOWN #游戏手柄按下
JOYBUTTONUP #游戏手柄放开
VIDEORESIZE #Pygame窗口缩放
VIDEOEXPOSE #Pygame窗口部分公开
②键盘事件keyK_BACKSPACE 退格键
pygame.draw.rect(surface, color, rect, width) #绘制矩形
pygame.draw.polygon(surface, color, points, width) #绘制多边形
pygame.draw.circle(surface, color, pos, radius, width=0) #根据圆心和半径绘制圆形
pygame.draw.ellipse(surface, color, Rect, width=0) #根据限定矩形绘制一个椭圆形
pygame.draw.line(surface, color, s_pos, e_pos, width=1) #绘制线段
pygame.draw.lines(surface, color, closed, pointlist, width=1) #绘制多条连续的线段
pygame.draw.aaline(surface, color, startpos, endpos, blend=1) #绘制抗锯齿的线段
pygame.draw.aalines(surface, color, closed, pointlist, blend=1) #绘制多条连续的线段
surface:游戏主窗口
color:颜色
rect:位置和尺寸大小
width:线的宽度
pos:圆心位置
radius:半径
s_pos:起始位置
e_pos:终点位置
pointlist:参数值列表
pygame.event.get() #从队列中获取事件 在后续获取鼠标键盘操作时可以得到应用
pygame.event.pump() #pygame内部自动处理事件
pygame.event.poll() #从队列中获取"一个"事件
pygame.event.wait() #等待并从队列中获取一个事件
pygame.event.peek() #检测某类型事件是否在队列中
pygame.event.clear()#从队列中删除所有的事件
pygame.event.Event()#创建一个新的事件对象
① event可以判断的事件
QUIT #用户按下窗口的关闭按钮
ATIVEEVENT #Pygame被激活或者隐藏
KEYDOWN #键盘按下
KEYUP #键盘放开
MOUSEMOTION #鼠标移动
MOUSEBUTTONDOWN #鼠标按下
MOUSEBUTTONUP #鼠标放开
JOYAXISMOTION #游戏手柄(Joystick or pad) 移动
JOYBALLMOTION #游戏球(Joy ball) 移动
JOYHATMOTION #游戏手柄(Joystick) 移动
JOYBUTTONDOWN #游戏手柄按下
JOYBUTTONUP #游戏手柄放开
VIDEORESIZE #Pygame窗口缩放
VIDEOEXPOSE #Pygame窗口部分公开
②键盘事件keyK_BACKSPACE 退格键
1 K_TAB 制表键
K_CLEAR 清除键
K_RETURN 回车键
K_PAUSE 暂停键
K_ESCAPE 退出键
K_SPACE 空格键
K_0…K_9 0…9
K_a…Kz a…z
K_DELETE 删除键
K_KP0..K_KP9
0(小键盘)…9(小键盘)
K_F1..K_F15 F1…F15
K_UP 向上
K_DOWN 向下
6.font模块
pygame.font.SysFont() #从系统字体库创建一个Font对象
pygame.font.Font() #从一个字体文件创建一个Font对象
pygame.font.init() #初始化字体模块
pygame.font.quit() #还原字体模块
pygame.font.get_fonts() #获取所有可使用的字体
pygame.font.SysFont() #从系统字体库创建一个Font对象
pygame.font.Font() #从一个字体文件创建一个Font对象
pygame.font.init() #初始化字体模块
pygame.font.quit() #还原字体模块
pygame.font.get_fonts() #获取所有可使用的字体
font模块主要应用在字体的创建上。
pygame.font.SysFont("方正粗黑宋简体", size) #字体字号
font.render(text, True, color) #文本 光滑 颜色
7.time模块
pygame.time.get_ticks() #以毫秒为单位获取时间
pygame.time.wait() #暂停
pygame.time.set_timer() #创建一个定时器,即每隔一段时间,去执行一些动作
pygame.time.Clock() #创建一个时钟对象
8.基本框架
pygame.time.get_ticks() #以毫秒为单位获取时间
pygame.time.wait() #暂停
pygame.time.set_timer() #创建一个定时器,即每隔一段时间,去执行一些动作
pygame.time.Clock() #创建一个时钟对象
对于pygame库要现有一个基本的主框架,然后在主框架中逐步填入每一条应用代码,测试每一段pygame的相关操作能够运行。
import pygame #导入pygame库
import sys #退出所使用的sys库
pygame.init() #初始化pygame
pygame.display.set_mode((800,600)) #创建一个宽度为八百、高度为六百的窗口
pygame.display.set_caption("无聊.jpg 的小游戏") #设置当前窗口标题
pygame.display.flip() #刷新屏幕
while True: #设置游戏的主循环,保证页面不闪退,并且可以使用鼠标关闭
for envent in pygame.event.get(): #监听用户事件
if envent.type == pygame.QUIT: # 判断用户是否点击了关闭按钮
pygame.quit() #卸载pygame所有程序
sys.exit() #用户退出