Pygame(一)
前言
从今天开始,学习Pygame
安装
因为pygame与turtle库不一样,是一个第三方库.
因此,需要我们手动去安装pygame库
我们打开命令行窗口:
-
快捷键:win+R (win就是键盘上那个有windows徽标的(四个方块的)的那个键)
-
然后输入cmd
-
点运行(回车)
4.在弹出的窗口中输入:
pip install pygame
- 静候安装
截止今天,pygame库版本已经更新到2.0.1了
Pygame程序最小模板
# /usr/bin/python3
# Author: 爱编程的章老师
# @Time: 2020/12/30 0030
# E-mail: [email protected]
import sys
import pygame
pygame.init() # 初始化pygame
screen = pygame.display.set_mode(size=(800, 600)) # 设置窗口大小,并返回窗体
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
代码分析
第一行:
import sys
导入sys库
因为这里我们只用到了exit()函数
所以,也可以写成
from sys import exit
exit() 用来当我们不想玩游戏的时候,退出游戏结束程序用的.
第二行:
import pyame
导入我们的主角:pygame库
这个库,功能非常强大.随着我们的学习,慢慢了解它,熟悉它,从而爱上它.
第三行:
pygame.init()
这个init是我们程序里经常要用到的一个单词:
如下,这是百度翻译给出的翻译.
这里
作用就是用来初始化的其本质就是检测电脑设备是否能够正常运行.
返回值是一个元组
- 第一个元素是正常的设备数
- 第二个元素是失败的设备数
如果你对硬件比较熟悉,或者后期我们比较熟悉了,可以对单个设备进行一对一的初始化,而不是这里一次性的初始化
第四行:
screen = pygame.display.set_mode(size=(800, 600)) # 设置窗口大小,并返回窗体
set_mode()的参数比较复杂,我们可以看一下这个函数的定义:
def set_mode(size=00, flags=0, depth=0, display=0, vsync=0)
简略做下介绍:
size: 是一个元组(tuple),第一个参数是窗口的宽,第二个参数是窗口的高
- 如果没有传入 size参数,或者使用默认设置 (0, 0),且 Pygame 使用 SDL1.2.10 以上版本,那么创建出来的 Surface 对象将与当前屏幕用户一样的分辨率。
- 如果只有宽或高其中一项被设置为 0,那么 Surface 对象将使用屏幕分辨率的宽或高代替它。
- 如果 SDL 版本低于 1.2.10,那么将抛出异常。
flags:指定你想要的显示类型
取值列表如下:
选项 | 含义 |
---|---|
pygame.FULLSCREEN | 创建一个全屏显示 |
pygame.DOUBLEBUF | 1. 双缓冲模式 2. 推荐和 HWSURFACE 或 OPENGL 一起使用 |
pygame.HWSURFACE | 硬件加速,只有在 FULLSCREEN 下可以使用 |
pygame.OPENGL | 创建一个 OPENGL 渲染的显示 |
pygame.RESIZABLE | 创建一个可调整尺寸的窗口 |
pygame.NOFRAME | 创建一个没有边框和控制按钮的窗口 |
如果有多个选项要同时先的时候,用"|"来连接不同的值
depth:表示使用的颜色深度
通常不会改这个值,默认值时,Pygame会根据当前操作系统选择最好和最快的颜色深度
vsync:用来设置垂直同步的.不过效果不怎么给力.一般默认值0即可,如果非要设置,取1就可.不过,不一定有效果
display:获取display的索引.0表示当前的display对象.同样,取默认值即可
总结:
set_mode()在使用的时候,通常只设置第一个参数,即宽和高即可
第五行
无限循环:
作用:进入游戏循环
第六行:
for event in pygame.event.get():
pygame.event.get() 函数返回一个pygame的事件列表.
这个循环是我们对事件的处理循环.当我们需要响应pygame的事件的时候,就要在这里处理.
具体的事件,回头再详解.
结合第七行,我们处理了退出程序的事件(即点了窗口的那个X的事件)
事件名称:pygame.QUIT
第七行
if event.type == pygame.QUIT:
判断事件类型,是否为退出程序事件
第八行
sys.exit()
退出程序
总结
以上,就是pygame的最小程序框架.我们后续的内容,都将在这个框架的基础上进行操作.
请牢记.
程序运行效果图: