淘先锋技术网

首页 1 2 3 4 5 6 7

Pygame(一)

前言

从今天开始,学习Pygame

安装

因为pygame与turtle库不一样,是一个第三方库.
因此,需要我们手动去安装pygame库

我们打开命令行窗口:

  1. 快捷键:win+R (win就是键盘上那个有windows徽标的(四个方块的)的那个键)
    image.png

  2. 然后输入cmd
    image.png

  3. 点运行(回车)
    4.在弹出的窗口中输入:

pip install pygame

image.png

  1. 静候安装
    image.png

截止今天,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是我们程序里经常要用到的一个单词:
image.png
如下,这是百度翻译给出的翻译.
这里
作用就是用来初始化的其本质就是检测电脑设备是否能够正常运行.
返回值是一个元组

  1. 第一个元素是正常的设备数
  2. 第二个元素是失败的设备数
    如果你对硬件比较熟悉,或者后期我们比较熟悉了,可以对单个设备进行一对一的初始化,而不是这里一次性的初始化

第四行:

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),第一个参数是窗口的宽,第二个参数是窗口的高

  1. 如果没有传入 size参数,或者使用默认设置 (0, 0),且 Pygame 使用 SDL1.2.10 以上版本,那么创建出来的 Surface 对象将与当前屏幕用户一样的分辨率。
  2. 如果只有宽或高其中一项被设置为 0,那么 Surface 对象将使用屏幕分辨率的宽或高代替它。
  3. 如果 SDL 版本低于 1.2.10,那么将抛出异常。

flags:指定你想要的显示类型
取值列表如下:

选项含义
pygame.FULLSCREEN创建一个全屏显示
pygame.DOUBLEBUF1. 双缓冲模式 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的最小程序框架.我们后续的内容,都将在这个框架的基础上进行操作.
请牢记.

程序运行效果图:
image.png