pygame基础知识

转载注明链接:https://www.cnblogs.com/liquancai/p/13219786.html

Pygame 基础知识


1. 安装Pygame库

  • pygame是一个Python模块,专为电子游戏设计

  • 官方网站 : https://www.pygame.org/

    网站栏目 内容
    GettingStarted 在各平台安装模块的说明
    Docs pygame模块所有子类的参考手册
    • 安装pygame

      直接在 命令提示符 窗口输入:pip install pygame

    • 验证安装

      同样在 命令提示符 窗口输入:python -m pygame.example.aliens 出现一个动画窗口即表示安装成功。

2. Pygame的模块

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.movie 播放视频
pygame.music 播放音频
pygame.overlay 访问高级视频叠加
pygame Python模块,专为电子游戏设计
pygame.rect 管理矩形区域
pygame.sndarray 操作声音数据
pygame.sprite 操作移动图像
pygame.surface 管理图像和屏幕
pygame.surfarray 管理点阵图像数据
pygame.time 管理时间和帧信息
pygame.transform 缩放和移动图像

建立 Pyagme 项目和建立其他 Python 项目一样,在IDLE或文本编辑器中新建一个空文档,需要告诉 Python 该程序用到了 Pygame 模块。

为了实现此目的,需要用 import 指令告诉 Python 载入外部模块。如下:

import pygame, sys, time, random
from pygame.locals import * 

第1行引入 pygame 的主要模块 、sys 模块 、time 模块 、random 模块

第2行告诉 python 载入 pygame.locals 的所有指令使它们成为原生指令,这样在使用这些指令时就不需要使用全名调用。

由于硬件和游戏的兼容性或者请求的驱动没有安装的问题,有些模块可能在某些平台上不存在,可以使用 None 调试一下。例如测试字体是否载入:

if pygame.font is None:
    print("The font module is not available!")
    pygame.quit()												# 如果没有则退出pygame的应用环境

3. 常用模块简要说明

1. pygame.surface

该模块中有一个 surface() 函数,surface() 的一般格式如下:

pygame.surface((width, height), flags=0, depth=0, masks=None)

它返回一个新的 surface 对象,这里的 surface 对象是一个有确定尺寸的空图像,可以用它进行图像的绘制与移动。

2. pygame.locals

pygame.locals 模块中定义了 pygame 环境中用到的各种常量,而且包括事件类型 、按键和视频模式等的名字,在导入所有内容( from pygame.locals import * ) 时用起来很安全。

如果用户知道需要的内容,也可以导入具体的内容(例如 form pygame.locals import FULLSCREEN )。

3. pygame.display

pygame.display 模块包括处理 pygame 显示方式的函数,其中包括普通窗口和全屏模式。

游戏程序通常需要下面的函数:

  1. flip() / update()

    • flip() : 更新显示。一般来说,在修改当前屏幕的时候要经过两步,首先要对 get_surface() 函数返回的 surface 对象进行修改,然后调用 pygame.display.flip() 更新显示以反映所做的修改。
    • update() : 在只想更新屏幕的一部分的时候使用 update() 函数,而不是 flip() 函数
  2. set_mode

    ​ 该函数建立游戏窗口,返回 surface 对象。它有3个参数,第1个参数是元组,用于指定窗口的尺寸;第2个参数是标志位,具体含义如下表所示,例如 FULLSCREEN 表示全屏,默认值为不对窗口进行设置,可根据需要选用;第3个参数为色深,用于指定窗口的色彩位数。

    set_mode 的窗口标志位的参考取值

    窗口标志位 功能
    FULLSCREEN 创建一个全屏窗口
    DOUBLEBUF 创建一个 “双缓冲” 窗口,建议在 HWSURFACE 或者 OPENGL 时使用
    HWSURFACE 创建一个硬件加速窗口,必须和 FULLSCREEN 同时使用
    OPENGL 创建一个 OPENGL 渲染的窗口
    RESIZABLE 创建一个可以改变大小的窗口
    NOFRAME 创建一个没有边框的窗口
  3. set_caption()

    ​ 该函数设定游戏程序的标题。当游戏以窗口模式(对应于全屏)运行时尤其有用,因为该标题会作为窗口的标题。

  4. get_surface()

    ​ 该函数返回一个可用来画图的 surface 对象。

4. pygame.font

pygame.font 模块用于表现不同字体,可以用于文本。

5. pygame.sprite

pygame.sprite 模块有两个非常重要的类—— sprite 精灵类和 Group 精灵组类。

sprite 精灵类是所有可视游戏的基类。为了实现自己的游戏对象,需要子类化 sprite ,覆盖它的构造函数,以设定 imagerect 属性(决定 sprite 的外观和放置的位置),再覆盖 update() 方法。在sprite 需要更新的时候可以调用 update() 方法。

Group 精灵组类的实例作为 sprite 精灵对象的容器。在一些简单的游戏中,只要创建名为:spritesallsprite 或是其他类型的组,然后将所有 sprite 精灵对象添加到上面即可。当 Group 精灵组对象的 update() 方法被调用时会自动调用所有 sprite 精灵对象的 update() 方法。Group 精灵组对象的 clear() 方法用于清理它包含的所有 sprite 对象。Group 精灵组对象的 draw() 方法用于绘制所有的 sprite 对象。

6. pygame.mouse

该模块用来管理鼠标

pygame.mouse.set_visible(False/True) :隐藏显示鼠标光标。
pygame.mouse.get_pos() :获取鼠标位置。

7. pygame.event

pygame.event 模块会追踪鼠标单击 、鼠标移动 、按键按下和释放等事件。其中 pygame.event.get() 可以获取最近事件列表。

8. pygame.image

这个模块用于处理保存在 GIF 、PNG 或者 JPEG 内的图形,用户可以用 load() 函数来读取图像文件。

原文地址:https://www.cnblogs.com/liquancai/p/13219786.html