目录
一、Pygame概述
1.安装Pyganme
2.Pygame常用模块介绍
2.1 display模块常用方法
2.2 pygame.event模块常用方法
2.3 Surface对象的常用方法
二、问题汇总
1.窗体问题
1.1 添加死循环之后出现窗体未响应。
记述关于Pyganme开发的基本知识。
一、Pygame概述
Pygame是跨平台的python模块,转为电子游戏设计(包含图像、声音),创建在SDL(Simple DirectMedia Layer)基础,抛开低级语言(如汇编)的舒服。所有游戏功能和理念都简化为游戏逻辑本身,所有资源结构都可以由高级语言提供。
1.安装Pyganme
Pygame官网:http://www.pygame.org,可以在官网中查找相关文档。
安装:
pip install pygame
安装检查:
# _*_ coding:utf-8 _*_
import pygame
pygame.ver # 查看pygame版本
结果,显示版本表示安装成功:
pygame 2.1.2 (SDL 2.0.18, Python 3.7.8)
Hello from the pygame community. https://www.pygame.org/contribute.html
>>>
2.Pygame常用模块介绍
模块 | 说明 |
---|---|
pygame.cdrom | 访问光驱 |
pygame.cursors | 加载光标 |
pygame.display | 访问显示设备 |
pygame.draw | 绘制形状、线和点 |
pygame.event | 管理事件 |
pygame.font | 使用字体 |
pygame.image | 加载和存储图片 |
pygame.joystick |
使用有系手柄或类似的东西 |
pygame.key | 读取键盘按键 |
pygame.mixer | 声音 |
pygame.mouse | 鼠标 |
pygame.music | 播放音频 |
pygame.overlay | 访问高级视频叠加 |
pygame.reet | 管理矩形区域 |
pygame.sndarray | 操作声音数据 |
pygame.sprite | 操作移动图像 |
pygame.surface | 管理图像和屏幕 |
pygame.surfarray | 管理点阵图像数据 |
pygame.time | 管理时间和帧信息 |
pygame.transform | 缩放和移动图像 |
2.1 display模块常用方法
方法 | 说明 | 说明 |
---|---|---|
pygame.display.init() | 初始化display模块 | |
pygame.display.quit() | 结束display模块 | |
pygame.display.get_init() | 返回是否初始化,初始化返回True | |
pygame.display.set_mode() | 初始化界面 | set_mode(width,height) 指定宽高的界面 |
pygame.display.get_surface() | 获取当前的Surface对象 | |
pygame.display.flip() | 更新整个待显示的surface对象到屏幕上 | |
pygame.display.update() | 更新部分内容显示到屏幕上,如果没有参数,就是更新整个surface对象 | |
2.2 pygame.event模块常用方法
方法 | 说明 | 备注 |
---|---|---|
pygame.event.get() | 获取事件队列 | QUIT:检测到关闭窗口事件 KEYDOWN:键盘按下事件 MOUSEBUTTONDOWN:鼠标按下事件 |
2.3 Surface对象的常用方法
方法 | 说明 | 备注 |
---|---|---|
pygame.Surface.blit() | 将图像画到另一个图像上 | |
pygame.Surface.convert() | 转换图像的像素格式 | |
pygame.Surface.convert_alpha() | 转换图像的像素格式,包含alpha通道 | |
pygame.Surface.fill() | 颜色填充Surface | |
pygame.Surface.get_rect() | 获取Surface的矩形区域,返回的是Rect对象 | |
二、问题汇总
1.窗体问题
1.1 添加死循环之后出现窗体未响应。
问题:为了保持窗体显示,会在代码段添加死循环用来保持代码显示,但是添加死循环后窗体卡死。
while True:
clock.tick(60)
pygame.display.flip()
结果:即使有添加了时钟也还是会卡死
网上搜了没有具体解决方案,后面通过添加事件扫描之后就不会卡死了,具体的原因还不清楚。文章来源:https://www.toymoban.com/news/detail-494034.html
这点跟C#之类的不同,需要添加事件才能避免报错。文章来源地址https://www.toymoban.com/news/detail-494034.html
while True:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
pygame.display.flip()
到了这里,关于Python学习笔记-Pygame的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!