一、介绍
1.1 定义
Pygame是一种流行的Python游戏开发库,它提供了许多功能,使开发人员可以轻松创建2D游戏。它具有良好的跨平台支持,可以在多个操作系统上运行,例如Windows,MacOS和Linux。在本文中,我们将介绍Pygame库的特点和用法,帮助您了解如何使用Pygame库进行游戏开发。它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模块等。
官方地址:https://www.pygame.org/
1.2 相关函数
1) pygame.sprite 代表游戏图像的更高级别的对象
2)pygame.Surface 图像和屏幕的对象
3)pygame.surfarray 操作图像像素数据
4)python 管理pygame的顶级功能
5)pygame.BufferProxy 表面像素的阵列协议视图
该类是 Surface 对象通过数组协议导出的一个缓冲对象
6)pygame.Color 颜色表示
该类是pygame中用于描述颜色的模块
7)pygame.cursors 加载和编译光标图像
8)pygame.display 配置显示表面
9)pygame.draw 在曲面上绘制简单的形状,例如直线和椭圆
10)pygame.event 管理来自各种输入设备和窗口平台的传入事件
11)pygame.examples 各种程序演示了各个 pygame 模块的使用
12)pygame.font 加载和渲染 TrueType 字体
13)pygame.freetype 增强的 pygame 模块用于加载和渲染字体
14)pygame.gfxdraw 抗锯齿绘制函数
15)pygame.image 加载、保存和传输表面
16)pygame.joystick 管理操纵杆设备
17)pygame.key 管理键盘设备
18)pygame.locals Pygame 常量
该模块包含 pygame 使用的各种常量。其内容自动放置在 pygame 模块命名空间中。
19)pygame.mixer 加载并播放声音
20)pygame.mouse 管理鼠标设备和显示
21)pygame.mixer.music 播放流媒体音乐曲目
22)pygame.PixelArray 操作图像像素数据
23)pygame.Rect 矩形的灵活容器
24)pygame.scrap 本机剪贴板访问
25)pygame.sndarray 操纵声音样本数据
26)pygame.tests 测试pygame
27)pygame.time 管理时间和帧率
28)pygame.transform 调整图像大小并移动图像
二、Pygame的安装和使用
1、安装
pip install pygame
2、应用案例
1)按键(Alt + W/A/S/D)操作小球移动
# -*- coding:utf-8 -*-
import pygame
# 初始化pygame
pygame.init()
# 设置窗口标题
title = "Pygame应用案例-按键移动的小球"
pygame.display.set_caption(title)
screen = pygame.display.set_mode((1280, 720))
clock = pygame.time.Clock()
running = True
dt = 0
player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)
while running:
# 事件轮询 - pygame.QUIT 事件表示用户单击X关闭您的窗口
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 用一种颜色填充屏幕以擦除上一帧中的任何内容
screen.fill("purple")
pygame.draw.circle(screen, "red", player_pos, 40)
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
player_pos.y -= 300 * dt
if keys[pygame.K_s]:
player_pos.y += 300 * dt
if keys[pygame.K_a]:
player_pos.x -= 300 * dt
if keys[pygame.K_d]:
player_pos.x += 300 * dt
# 更新全部显示
pygame.display.flip()
# 将FPS限制为60
# dt是自上一帧以来的增量时间(以秒为单位),用于帧速率
dt = clock.tick(60) / 1000
pygame.quit()
2)规则移动的小球
# -*- coding:utf-8 -*-
import sys
import pygame
# 初始化pygame
pygame.init()
# 设置窗口标题
title = "Pygame应用案例-规则移动的小球"
pygame.display.set_caption(title)
# 显示窗口
width = 800
height = 600
screen = pygame.display.set_mode((width, height))
ball = pygame.image.load("ball.png") # 加载图片
ballrect = ball.get_rect() # 根据图片大小获取矩形区域
speed = [5, 5] # 设置移动的X轴、Y轴距离
clock = pygame.time.Clock() # 创建时钟对象
# 执行死循环,确保窗口一直显示
while True:
# 表示每秒钟60次帧刷新
clock.tick(60)
# 检查事件
for event in pygame.event.get():
if event.type == pygame.QUIT: # 如果点击关闭窗口,则退出
pygame.quit() # 退出pygame
sys.exit()
ballrect = ballrect.move(speed) # 通过再次赋值移动小球
# 碰到左右边缘
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0] #如果碰到边距则反方向移动
# 碰到上下边缘
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
# 填充颜色
screen.fill("purple")
# 此函数是将图片推送到窗口上,第一个参数为图片第二个参数为图片位置
screen.blit(ball, ballrect)
# 更新全部显示
pygame.display.flip()
pygame.quit()
更多游戏案例可前往官网(https://www.pygame.org/tags/all)下载并查看