Python学习笔记-Pygame

目录

一、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 常用模块
模块说明
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模块常用方法

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模块常用方法

event模块常用方法
方法说明备注
pygame.event.get()获取事件队列

QUIT:检测到关闭窗口事件

KEYDOWN:键盘按下事件

MOUSEBUTTONDOWN:鼠标按下事件

2.3 Surface对象的常用方法

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()

结果:即使有添加了时钟也还是会卡死

 网上搜了没有具体解决方案,后面通过添加事件扫描之后就不会卡死了,具体的原因还不清楚。

这点跟C#之类的不同,需要添加事件才能避免报错。

while True:
    clock.tick(60)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

    pygame.display.flip()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鱼听禅

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

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

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

打赏作者

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

抵扣说明:

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

余额充值