Bootstrap

python游戏库pygame经典教程

目录

一.Pygame程序基本搭建过程

        1.初始化化程序

        2.创建Surface对象

        3.事件监听

        4.游戏循环 

二.Pygame Display显示模块详解

        1.将Surface对象粘贴至主窗口上

        2.设置窗口主窗口

        3.填充主窗口背景,参数值RGB

        4.设置窗口标题

        5.更新屏幕内容

        6.pygame.display其他方法

三.Pygame Surface创建图像

        1.Surface模块创建图像

        2.Surface从外部加载图像

四.Pygame Transform图像变形 

五.Pygame Time时间控制

        1.游戏暂停

        2.设置游戏的帧数率(FPS)

六.Pygame Rect区域位置

七.Pygame Event事件模块 

        1.事件类型

        2.事件处理方法

        3.处理键盘事件

        4.处理鼠标事件

 八.Pygame Dra绘图函数

        1.绘制矩形

        2.绘制多边形

        3.绘制圆形

        4.绘制椭圆形

        5.绘制圆弧曲线

        6.绘制直线

九.字体绘制

十.音频播放


一.Pygame程序基本搭建过程

Pygame搭建游戏窗口主要为如下几步

1.初始化化程序

在使用Pygame编程之前,我们要对程序进行初始化,代码如下

pygame.init()

该代码是整个程序的第一句代码,它的作用是自动检测Pygame软件包是否正常,并完成包括display(显卡模块),font(字体模块),mixer(声音模块),cursors(光标控制模块)等的模块的初始化


2.创建Surface对象

Surface是Pygame编程的窗口界面,类似画布,图像和文本可以显示在Surface上,创建方式主要有以下方式

(1)创建Surface对象:

#也可以叫做screen对象,本质上是一个Surface对象
screen = pygame.display.set_mode(400,400)

(2)创建一个带文本的Surface对象:

#创建一个包含文字的Surface对象
text = f.render("小马哥不马虎",True,(255,255,255),(0,0,0))
#通过blit方法将其绘制出来,textRect表示位置坐标
screen.blit(text,textRect)

(3)创建一个包含图像的Surface对象:

surface_image = pygame.image.load("图片路径")

3.事件监听

一个好的游戏少不了游戏与人的交互,通过事件,人按自己的想法对游戏进行交互

如下是一个关闭游戏的简单交互:

#所有get()获取事件
for event in pygame.event.get():
    #判断事件类型
    if event.type == pygame.QUIT:
        pygame.quit()

4.游戏循环 

代码:

while True:
    for event in pymage.event.get():
        if event.type == pygame.QUIT:
            pymage.quit()
            sys.exit()
    #更新并绘制屏幕内容
    pygame.display.flip()

二.Pygame Display显示模块详解

Pygame使用pygame.display显示模块中的方法创建游戏的主窗口:

格式:

screen = pygame.display.set_mode(size=(),flags=0)

·size:用来设置窗口的大小

·flags:功能标志位,表示创建的主窗口样式,flags参数如下:

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

1.将Surface对象粘贴至主窗口上

代码:

scrren.blit(source,dest,area=None,special_flage=0)

·source:表示要粘贴的Surface对象

·dest:主窗口一个标识的坐标位置

·area:接受一个Rect对象,默认为None,如果提供该参数则相当于抠图操作,即在屏幕的指定位置显示想要的内容

·special_flags:可选参数,用于指定对应位置颜色的混合方式


2.设置窗口主窗口

screen = pygame.display.set_mode(400,400)

3.填充主窗口背景,参数值RGB

screen.fill((156,156,156))

4.设置窗口标题

pygame.display.set.caption('小马哥不马虎')

5.更新屏幕内容

pygame.display.flip()

6.pygame.display其他方法

方法名称 说明
pygame.display.get_surface() 获取当前显示的Surface对象
pygame.display.flip() 更新整个待显示的Surface对象到屏幕上
pygame.display.update() 更新部分软件界面显示
pygame.display.lnfo() 产生一个VideInfo对象,包含了显示界面的相关信息
pygame.display.set_icon() 设置左上角的游戏图标,图标尺寸大小为32*32
pygame.display.iconify() 将显示的主窗口即Surface对象最小化,或者隐藏
pygame.display.get_active() 当前显示界面显示在屏幕上时返回True,如果窗口被隐藏和最小化时则返回False

三.Pygame Surface创建图像

1.Surface模块创建图像

语法格式:

Surface=pygame.Surface(size=(width,height),flags,depth)

·size:表示Surface对象的矩形区域大小

·flage:功能标志位,有两个可选参数值HWSURFACE和SPCALPHA,前者代表将创建的Surface对象存放于显存中,后者表示让图像的每一个像素包含一个alpha通道

·depth:指定像素的颜色深度,默认为自适应模式,由Pygame自动调节

代码实例:

import pygame
import sys

pygame.init()
#设置主窗口
screen = pygame.display.set_mode((400,400))
screen.fill('blue')
#设置窗口标题
pygame.display.set_caption('小马哥不马虎')
#创建一个图像
face = pygame.Surface((60,60),flags=pygame.HWSURFACE)
#填充图像
face.fill(color='pink')
while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
            sys.exit()
    #将图像添加到主屏幕上
    screen.blit(face,(100,100))
    #更新屏幕内容
    pygame.display.flip()

效果:


2.Surface从外部加载图像

语法格式:

pygame.image.load('图片路径').convert()

代码实例:

import pygame
import sys

pygame.init()
#设置主窗口
screen = pygame.display.set_mode((400,400))
;